nodejs循环异步控制并发通俗易懂的方法

nodejs是异步式,平时写代码中我们都是 async await或者promise来控制这个执行顺序
但是很多人遇到nodejs循环中控制并发这个坑
其实这个坑也不大
运用好nodejs,它也能在循环中控制并发
这次用到的知识点就是nodejs中的async,下面贴上解决的过程

1、首先安装模板

npm i async --save

2、这里用到async.mapLimit来控制循环并发

//coll 表示执行的数组集合
//limit 表示每次执行多少个
//iteratee 表示coll中的每一项的处理逻辑,iteratee接受两个参数item,callback。
item是coll的每一项,callback又接受两个参数:error 和 transformedItem,数据处理完成后要手动调用callback。
错误发生时,callbackopt会立即执行返回一个错误。
//callbackopt是在所有的遍历完成之后(依赖iteratee函数里面的callback执行)才调用的,
它接收两个参数:error和results,err是iteratee遍历函数里产生的error,results是最终的结果数组
async.mapLimit(coll,limit, iteratee, callbackopt)

以下是一个Demo

const async = require('async')
let arr = [1,2,3,4,5]
var iterateeFun = function (item, callback) {
  console.log('调用开始' + item)
  setTimeout(() => {
     var newItem = item;
     console.log('调用结束' + item)
     callback(null, newItem);
  }, Math.random() * 1000);

 };
 var allEnd = function (err, results) {
   console.log(results)
 };

 async.mapLimit(arr, 1, iterateeFun, allEnd);

下次为大家更新一个循环中套循环控制并发的例子。

KK资源网分享最优质的的资源,涵盖网站建设、IT技术、主题源码
KK资源吧 » nodejs循环异步控制并发通俗易懂的方法

发表评论