封装一个promise链式调用方法
时间: 2023-10-14 08:19:41 浏览: 78
以下是一个简单的promise链式调用方法的封装示例:
```
function chainPromises(promises) {
return promises.reduce((previousPromise, currentPromise) => {
return previousPromise.then(() => currentPromise());
}, Promise.resolve());
}
```
该方法接受一个promise数组作为参数,依次执行每个promise并等待其完成,然后再执行下一个promise。使用方法如下:
```
const promises = [
() => {
return new Promise((resolve, reject) => {
setTimeout(() => {
console.log('Promise 1 resolved');
resolve();
}, 1000);
});
},
() => {
return new Promise((resolve, reject) => {
setTimeout(() => {
console.log('Promise 2 resolved');
resolve();
}, 2000);
});
},
() => {
return new Promise((resolve, reject) => {
setTimeout(() => {
console.log('Promise 3 resolved');
resolve();
}, 3000);
});
}
];
chainPromises(promises).then(() => {
console.log('All promises resolved');
});
```
该示例将创建3个promise,每个promise分别在1秒、2秒和3秒后解析,并在解析后打印一条消息。然后,它使用`chainPromises`方法依次执行这些promise,并在所有promise解析后打印一条消息。
阅读全文