比如说做一件事分几个动作: step1 、 step2 、 finish ,前两个是异步的, step1 完成后才能执行 step2 (然后 finish )。我想到用 Promise 这么写:
let prom = new Promise((resolve, reject) => {
// step1 ,用 setTimeout 模拟一下异步
setTimeout(() => resolve('1'), 1000);
// 先忽略 reject 相关动作
});
prom.then(data => {
// step2
setTimeout(() => {
prom.then(data => {
// finish
console.log(`完成: ${data}`)
});
}, 1000);
});
可这样不就成 callback hell 了吗?而且从 step2 往后传数据也不方便。
由此引发的还有 step1 出错执行reject()如何中止整个过程的问题。
还是我对 Promise 的理解有问题?