Promise that can be canceled

Example

Catch CancelError

import CancelablePromise from "@nextgis/cancelable-promise";

const promise = new CancelablePromise((resolve, reject) => {
setTimeout(() => resolve(), 100);
}).catch((er) => {
if (er.name === "CancelError") {
// handle cancel error
}
throw er;
});

promise.cancel();

Example

Handle onCancel callback

import CancelablePromise from "@nextgis/cancelable-promise";

const promise = new CancelablePromise((resolve, reject, onCancel) => {
const xhr = new XMLHttpRequest();
xhr.open("GET", url, true);
xhr.onload = () => {
resolve(xhr.responseText);
};
xhr.onerror = (er) => {
reject(er);
};

onCancel(() => {
xhr.abort();
});

xhr.send();
});

promise.cancel();

Type Parameters

  • T = any

Hierarchy

  • default

Implements

  • Promise<T>

Constructors

  • Type Parameters

    • T = any

    Parameters

    • executor: ((resolve, reject, onCancel) => void)
        • (resolve, reject, onCancel): void
        • Parameters

          • resolve: ((value?) => void)
              • (value?): void
              • Parameters

                • Optional value: T | PromiseLike<T>

                Returns void

          • reject: ((reason?) => void)
              • (reason?): void
              • Parameters

                • Optional reason: any

                Returns void

          • onCancel: OnCancelFunction

          Returns void

    • Optional timeout: number

    Returns default<T>

Properties

[toStringTag]: string
id: number = ...
CancelError: typeof CancelError = CancelError
PromiseControl: typeof PromiseControl = PromiseControl
TimeoutError: typeof TimeoutError = TimeoutError

Methods

  • Type Parameters

    • TResult1 = T

    • TResult2 = never

    Parameters

    • Optional onfulfilled: null | ((value) => TResult1 | PromiseLike<TResult1>)
    • Optional onrejected: null | ((reason) => TResult2 | PromiseLike<TResult2>)

    Returns default<TResult1 | TResult2>

Generated using TypeDoc