promise.then()返回的新promise的结果状态由什么决定呢?
由then()指定的回调函数 执行结果 来决定!!
(1)如果抛出异常了,将会返回rejected 的promise reason为抛出的异常
(2)如果返回的是非promise的任意值 ,新promise变为resolved value为返回的值
(3)如果返回的是另一个新的promise ,此promise的结果回成为新的promise 的结果
代码如下:
new Promise((resolve,reject)=>{
setTimeout(() => {
resolve(1)
}, 1000);
}).then(
value =>{
console.log('任务1的结果:',value);
console.log('执行任务2的同步');
return 2
},
reason =>{
console.log('任务1失败',reason)
}
).then(
value =>{
console.log('任务2的结果',value);
return new Promise((resolve,reject)=>{
setTimeout(() => {
console.log('执行任务3(异步)');
resolve(3)
}, 5000);
})
},
).then(
value =>{
console.log('任务3的结果:',value);
}
)