javascript 带有取消的多个承诺链

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript 带有取消的多个承诺链相关的知识,希望对你有一定的参考价值。

//npm install bluebird
var Promise = require("bluebird");
 
// Enable cancellation
Promise.config({cancellation: true});

var promiseChain = myPromise1("A", "A")
        .then((result) => {
            if (!result){
                return promiseChain.cancel();
            }
            return myPromise2("A", "A");
        })
        .then((result) => {
            if (!result){
                return promiseChain.cancel();
            }
            return myPromise3("A", "A");
        });

var myPromise1 = function (var1, var2) {
    var promise = new Promise((resolve, reject)=>{
        if(var1 == var2){
            console.log("PROMISE 1");
            resolve(true);
        }
        else {
            resolve(false);
        }
    });
    return promise;
}
 
var myPromise2 = function (var1, var2) {
    var promise = new Promise((resolve, reject)=>{
        if(var1 == var2){
            console.log("PROMISE 2");
            resolve(true);
        }
        else {
            resolve(false);
        }
    });
    return promise;
}
 
var myPromise3 = function (var1, var2) {
    var promise = new Promise((resolve, reject)=>{
        if(var1 == var2){
            console.log("PROMISE 3");
            resolve(true);
        }
        else {
            resolve(false);
        }
    });
    return promise;
}

以上是关于javascript 带有取消的多个承诺链的主要内容,如果未能解决你的问题,请参考以下文章

Javascript - 链多个获取承诺

带有多个猫鼬查找的foreach循环后的javascript承诺

javascript中的链承诺

通过 Javascript 中的承诺链传递状态都有哪些模式? [复制]

带有 FileReader() 的 Javascript 承诺

Javascript承诺链与重复逻辑附加到同一项目数组中。