渔获物在接前和后放置解析以下情况时会发生什么情况:p拒绝时会发生什么:p何时使用哪种:另一种选择
我很难理解将之前和之后放在嵌套承诺中的区别。.catch
备选案文1:
test1Async(10).then((res) => {
return test2Async(22)
.then((res) => {
return test3Async(100);
}).catch((err) => {
throw "ERROR AFTER THEN";
});
}).then((res) => {
console.log(res);
}).catch((err) => {
console.log(err);
});
备选案文2:
test1Async(10).then((res) => {
return test2Async(22)
.catch((err) => {
throw "ERROR BEFORE THEN";
})
.then((res) => {
return test3Async(100);
});
}).then((res) => {
console.log(res);
}).catch((err) => {
console.log(err);
});
每个函数的行为如下所示,如果数字为 test1,则 test1 失败,如果数字为 test2,则失败;如果数字不是 ,则 test3 失败。在这种情况下,test2 只是失败了。<0
> 10
100
我试图运行并使test2Async失败,然后之前和之后的行为方式相同,那就是不执行test3Async。有人可以向我解释将渔获物放在不同地方的主要区别吗?
在每个函数中,我为了检查它是否被执行。console.log('Running test X')
这个问题是由于我发布的上一个线程而引起的 如何将嵌套回调转换为承诺?.我认为这是一个不同的问题,值得发布另一个主题。