大家都知道jQuery的鏈式調用是return this的妙用,那么Promise的呢?比如function start() {
return new Promise((resolve, reject) => {
resolve('start');
});
}
start()
.then(data => {
// promise start
console.log('result of start: ', data);
return Promise.resolve(1); // p1
})
.then(data => {
// promise p1
console.log('result of p1: ', data);
return Promise.reject(2); // p2
})
.then(data => {
// promise p2
console.log('result of p2: ', data);
return Promise.resolve(3); // p3
})
.catch(ex => {
// promise p3
console.log('ex: ', ex);
return Promise.resolve(4); // p4
})
.then(data => {
// promise p4
console.log('result of p4: ', data);
});result of start: startresult of p1: 1ex: 2result of p4: 4第三步,reject的還被下一步的then忽略掉了,這種鏈式調用是什么原理?怎么實現的?
2 回答

蠱毒傳說
TA貢獻1895條經驗 獲得超3個贊
因為啊,每個then都返回一個新的promise,每個then都返回一個新的promise,每個then都返回一個新的promise。
返回的新的promsie會在上一個promise的狀態變更改時候開始執行,以此類推,每次返回的新的promise被掛在上一個promise上,就此串成了一串
- 2 回答
- 0 關注
- 1218 瀏覽
添加回答
舉報
0/150
提交
取消