Appearance
then成功和失败的触发 1
本节目标:理解“then成功和失败的触发 1”的核心思路,并能把它用于实际开发或面试表达。
//将promise嵌套进行简化;// 1.如果promise中的then的回调(成功或者失败),返回一个普通值(不是promise,也不是抛出错误),会将结果传递到下一次then的成功回调中// 2.如果发生了异常(返回一个错误对象不算异常),那么会把这个异常抛出到外层then的失败的回调中去
;
// 3.如果返回的是一个promise, 那么需要判断这个promise的状态,如果promise是成功,就继续将成功的结果传递到外层的成功,如果是失败就将promise传递给外层的失败
;
//只有抛出异常,或者返回一个失败的promise才会走失败 其他的都是成功;
let promise2 = readFile('./a.txt').then(data => {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve(new Promise((resolve, reject) => {
setTimeout(() => {
resolve(500)
}, 2000);
}))
}, 1000);
})
})
promise2.then((data) => {
console.log(32, data)
}, (err) => {
console.log(err)
})