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)
			
CSDN 社区图书馆,开张营业! 深读计划,写书评领图书福利~

以上是关于JavaScript实现多个异步请求有序且同步完成的主要内容,如果未能解决你的问题,请参考以下文章

Java 使用CountDownLatch实现网络同步请求,异步同时获取商品信息组装

Java 使用CountDownLatch实现网络同步请求,异步同时获取商品信息组装

ajax同步请求与异步请求的区别

利用Promise实现数据多个请求加载完成时执行某个方法

同步方法与异步方法

node.js 中的同步 HTTP 请求