承诺代码中的冲突

时间:2017-02-28 12:01:24

标签: javascript node.js promise

考虑这段代码。假设first catch块被执行,那么问题就在于如何确定它是由testP还是first then承诺引起的。

var testP = function(){
    return new Promise(function(resolve, reject){
        //reject or resolve
    });
}

testP().then(function(res){
    console.log("first then");
    console.log(res);
    return new Promise(function(resolve,reject){
        // reject or resolve
    })
})
.catch(function(err){
    console.log("first catch");
    console.log(err);
})

1 个答案:

答案 0 :(得分:0)

你不能。

如果你想区分?你应该使用then的第二个参数。

testP().then(function(res){
    console.log("first then");
    console.log(res);
    return new Promise(function(resolve,reject){
        // reject or resolve
    })
}, function(err){
    console.log("first catch");
    console.log(err);
})
.catch(function(err){
    console.log("second catch");
    console.log(err);
})