JavaScript实现多个异步请求有序且同步完成
Posted 野生java研究僧
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript实现多个异步请求有序且同步完成相关的知识,希望对你有一定的参考价值。
文章目录
javascript实现多个异步请求有序且同步完成
前言
有时候我们需要执行多个异步请求任务,并且需要都执行成功再执行下一步操作,对返回值的结果也是有要求的,那么则可以使用以下方式,构建一个异步任务队列,然后批量处理,最后拿到统一的结果。
代码如下:
// 任务队列
let taskList = [];
for (var i = 1; i <= 10; i++)
let task = new Promise((resolve, reject) =>
taskMethod(i, resolve, reject)
);
taskList.push(task);
Promise.all(taskList).then(success =>
// 多个异步任务执行成功,在此处执行下一步操作
console.log('finalResult:', success)
).catch(error =>
// 多个异步任务执行失败,在此处执行下一步操作
console.log("error:", error)
);
/**
* 需要执行任务的方法,参数可自定义调整
* @param Object index 第 n 个任务
* @param Object resolve 成功回调
* @param Object reject 失败回调
*/
function taskMethod(index, resolve, reject)
// 模拟异步任务耗时
setTimeout(() =>
console.log("第 " + index + " 个任务开始执行")
if (1 == 1)
resolve("success" + index)
else
reject("error" + index)
, i * 1000)
以上是关于JavaScript实现多个异步请求有序且同步完成的主要内容,如果未能解决你的问题,请参考以下文章
Java 使用CountDownLatch实现网络同步请求,异步同时获取商品信息组装