1 回答

TA貢獻(xiàn)1860條經(jīng)驗(yàn) 獲得超8個(gè)贊
var p1 = new Promise(function (resolve, reject) {
setTimeout(() => reject("123"), 3000)
})
var p2 = new Promise(function (resolve, reject) {
setTimeout(() => resolve(p1), 1000)
})
p2
.then(result => console.log("error01",result),
result => console.log("error02",result))
.catch(error => console.log("error2",error))
Promise.resolve(promise);當(dāng)resolve方法中傳入一個(gè)promise對(duì)象時(shí),則返回的狀態(tài)會(huì)采用傳入promise對(duì)象的返回狀態(tài),也是就是說(shuō)這里p2的狀態(tài)會(huì)采用p1返回的狀態(tài)。
因?yàn)閜1中reject('123'),所以p2返回的狀態(tài)自然為p1的reject('123'),即調(diào)用了.then中的第二個(gè)reject時(shí)候的回調(diào)函數(shù)即 result => console.log("error02",result)。
添加回答
舉報(bào)