Рубрики
Без рубрики

Отмена обещания

Я хочу быть в состоянии отменить мои обещания и использовать что-то вдохновение: … Помечено спросите, JavaScript, обещание, потомное.

Я хочу быть в состоянии отменить мои обещания и использовать что-то вдохновение:

const makeCancelable = promise => {
    let rejectFn;

    const wrappedPromise = new Promise((resolve, reject) => {
        rejectFn = reject;

        Promise.resolve(promise)
            .then(resolve)
            .catch(reject);
    });

    wrappedPromise.cancel = () => {
        rejectFn({ canceled: true });
    };

    return wrappedPromise;
};

Использование:

const cancelablePromise = makeCancelable(myPromise);
// ...
cancelablePromise.cancel();

Раствор выше работает, но я хотел бы улучшить его и не хочу использовать Bluebirdjs. или Наблюдается (Ну, по крайней мере, не в данный момент …)

Я хотел бы иметь это как прототип Обещание объект, так что я мог бы позвонить Отмена на любое родное обещание.

Любой, кто готов предложить простейшее направление реализации?

Оригинал: “https://dev.to/mckabue/cancellable-promises-od5”