JS执行队列
电脑版发表于:2023/7/19 10:26
let promises = [];
/**
*
* @param {*} 执行Promise 执行完毕执行下一条
* @returns reduce为数组中的每一个元素依次执行回调函数
*/
function runPromiseByQueue(myPromises) {
return myPromises.reduce(
(previousPromise, nextPromise) =>
previousPromise.then(() => {
return nextPromise();
}),
Promise.resolve()
);
}
/**
*
* @param {*} item 数据
* @returns 创建执行消息队列 Promise
*/
function createPromise(item) {
return function() {
return new Promise(resolve => {
//请求接口执行完毕 resolve 返回
this.接口().then(res => {
resolve();
});
});
};
}
//数据集合创建Promise对象集合
数据集合.map(item => {
promises.push(createPromise(item));
});
//执行Promise集合
runPromiseByQueue(promises).then(() => {
//执行完毕
});