关于bluebird promise的问题
发布于 8 年前 作者 anjostar 3126 次浏览 来自 问答
var promiseArr = [task1, task2, task3];
Promise.all(promiseArr).then(function(){
	console.log('全部执行完成');
});

这样是可以全部执行完毕的时在控制台打印**“全部执行完成”; 但是这个并不是串行**的.

问题是: 现在我的promiseArr里面的个数不确定. 所以并不能用 promise.then(task1).then(task2).then(task3); 这样去串行. 想请教下大神们有什么好的解决方法.

3 回复

@Neil-UWA 多谢.解决了.

假设 task1 … taskn 都是 async function, 即返回 Promise, 顺序执行:

const arr = [task1, task2, ... taskn]
const p = arr.resuce(p, cur => p.then(cur), Promise.resplve())
回到顶部