promise数组串行执行
例如你有一组接口需要串行执行,首先你可能会想到使用await
const requestAry = [() => api.request1(), () => api.request2(), () => api.request3()];
for (const requestItem of requestAry) {
await requestItem();
}
如果使用promise的写法,那么你可以使用then函数来串联多个promise,从而实现串行执行。
const requestAry = [() => apiRequest1(), () => apiRequest2(), () => apiRequest3()];
const finallyPromise = requestAry.reduce(
(currentPromise, nextRequest) => currentPromise.then(() => nextRequest().then(res=>{
// 在每个请求函数执行成功后的逻辑代码
console.log('Request successful:', res);
})),
Promise.resolve() // 创建一个初始promise,用于链接数组内的promise
);