集合

async 用于操作 集合,数组或对象的函数

主要方法

concat

将多个异步操作的结果合并为一个数组

  1. concat(coll, iteratee, callback(err))

参数:

Name Type 描述
coll 可以迭代的 集合
iteratee AsyncFunction
callback(err) function
  1. //案例
  2. async.concat(['dir1','dir2','dir3'], fs.readdir, function(err, files){
  3. //files 为dir1 dir2 dir3 三个文件夹下,文件名组成的数组
  4. });

concatSeries

和concat一样,不过同一时间只操作一次(即串行)

  1. concatSeries(coll, iteratee, callback(err))

detect

返回集合中第一个满足条件的元素. 该iteratee并行执行,即有一个返回true时,将触发callback并返回结果.这意味着可能不是coll中符合条件的(按顺序)第一个参数.如果coll的顺序很重要,那就使用 detectSeries

  1. detect(coll,iteratee,callback)

别名: 查找(find)

参数:

Name Type 描述
coll 要迭代的集合
iteratee AsyncFunction
callback function 任何一项检测为true时调用,并返回符合的第一个元素.当没有符合条件的元素时,返回undefined,使用(err,result)调用

实例:

  1. async.detect(['file1','file2','file3'], function(filePath, callback) {
  2. fs.access(filePath, function(err) {
  3. callback(null, !err)
  4. });
  5. }, function(err, result) {
  6.  
  7. });

detectLimit

和detect 一样 ,但是通过limit限制了同时检测(异步)的数量.

  1. detectLimit(coll,limit,iteratee,callback)

别名: findLimit

补充参数:

Name Type 描述
limit number 一次异步操作的最大数量

detectSeries

和detect一样,同一时间只运行一个(串行)