Как использовать отмену Bluebird в цепочке обещаний? - PullRequest
0 голосов
/ 17 февраля 2020

Я новичок в Bluebird, не говоря уже об обещаниях. У меня есть пример кода с обещаниями до реализации Bluebird. Я пытаюсь реализовать отмену во время цепочки обещаний, но я не знаком ни с синтаксисом Bluebird, ни с тем, как его вообще реализовать. Вещи, которые я гуглил, бывают разных сортов и не дружелюбны для начинающих. Может ли кто-нибудь показать мне, как расширить мой код, чтобы я мог отменить его в пунктах цепочки обещаний?

function nextSectionGroup() {
    console.log("step 1");

    getParkingGrids()
    .catch(error => {
        console.log("error on step 1");
        //Want to cancel here
    })
    .then(data => {
        console.log("step 2");
        return selectParkingGrid();
    })
    .catch(error => {
        console.log("error on step 2");
        //Want to cancel here
    })
    .then(data => {
        console.log("finished");
    });
}

function getParkingGrids() {
    return new Promise((resolve, reject) => {
        // resolve("success");
        reject("failure");
    });
}

function selectParkingGrid() {
    return new Promise((resolve, reject) => {
        // resolve("success");
        reject("failure");
    });
}

По сути, я хочу отменить цепочку всякий раз, когда происходит отклонение, и она попадает в ловушку.

Когда я установил Bluebird (скрипт-тег), я также добавил код:

var Promise = require("bluebird");

Promise.config({
    cancellation: true
});

Что еще мне нужно добавить в мой код, чтобы эта работа работала?

...