promise 串联多个操作任务
- promise 的 then()返回一个新的 promise,可以开成 then()的链式调用
-
通过 then()的链式调用串联多个同步/异步任务
let p = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('ok')
}, 1000)
})
p.then(value => {
// p.then() 返回一个新的 promise 实例
return new Promise((resolve, reject) => {
resolve('success')
})
// 这个新的 promise 实例在使用 then() 方法
}).then(value => {
console.log(value); // succes
// 因为第二个 then 方法没有指定返回值 所以返回值是 undefined,而返回 undefined 就是返回 Promise[[PromiseState]]: "fulfilled" [[PromiseResult]]: undefined }
}).then(value => {
// 所以这里打印出来的是 undefined
console.log(value); // undefined
})