跳到主要内容

中断链式

2023年07月14日
柏拉文
越努力,越幸运

一、return new Promise(()=>)


return new Promise(()=>{}) 没有变更 Promise 的操作, 所以中断了 Promise

语法

new Promise(resolve => {
resolve();
})
.then(() => {
console.log(1);
})
.then(() => {
console.log(2);
})
.then(() => {
console.log(3);
})
.then(() => {
console.log(4);
});

如上所示: Promise 链正常情况下会输出 1 2 3 4, 如果我们想让输出 1 2 , 截止 2 为止。那么我们需要中断后续的 Promise.then() 链。

new Promise(resolve => {
resolve();
})
.then(() => {
console.log(1);
})
.then(() => {
console.log(2);
return new Promise(() => {});
})
.then(() => {
console.log(3);
})
.then(() => {
console.log(4);
});

参考资料


Promise的异常穿透和中断Promise的链式请求