如何串行执行多个Promise

发布时间 2024-01-12 09:02:25作者: 天宁哦

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
);