当使用 Promise 的 then() 链式调用的时候,可以在最后指定失败的回调,前面任何操作出现异常,都会传到最后失败的回调中处理
let p = new Promise((resolve, reject) => {
setTimeout(() => {
reject('我失败啦!')
}, 1000)
})
p.then(value => {
return new Promise((resolve, reject) => {
resolve('success')
})
}).then(value => {
console.log(value); // 前面有错误中间直接跳过
}).then(value => {
console.log(value); // 前面有错误中间直接跳过
}).catch(reason => {
console.warn(reason); // 我失败啦!
})