集合
async
用于操作 集合,数组或对象的函数
主要方法
concat
将多个异步操作的结果合并为一个数组
concat(coll, iteratee, callback(err))
参数:
Name | Type | 描述 |
---|---|---|
coll | 可以迭代的 集合 | |
iteratee | AsyncFunction | |
callback(err) | function |
- //案例
- async.concat(['dir1','dir2','dir3'], fs.readdir, function(err, files){
- //files 为dir1 dir2 dir3 三个文件夹下,文件名组成的数组
- });
concatSeries
和concat一样,不过同一时间只操作一次(即串行)
concatSeries(coll, iteratee, callback(err))
detect
返回集合中第一个满足条件的元素. 该iteratee并行执行,即有一个返回true
时,将触发callback并返回结果.这意味着可能不是coll中符合条件的(按顺序)第一个参数.如果coll的顺序很重要,那就使用 detectSeries
detect(coll,iteratee,callback)
别名: 查找(find)
参数:
Name | Type | 描述 |
---|---|---|
coll | 要迭代的集合 | |
iteratee | AsyncFunction | |
callback | function | 任何一项检测为true 时调用,并返回符合的第一个元素.当没有符合条件的元素时,返回undefined ,使用(err,result)调用 |
实例:
- async.detect(['file1','file2','file3'], function(filePath, callback) {
- fs.access(filePath, function(err) {
- callback(null, !err)
- });
- }, function(err, result) {
-
- });
detectLimit
和detect 一样 ,但是通过limit
限制了同时检测(异步)的数量.
detectLimit(coll,limit,iteratee,callback)
别名: findLimit
补充参数:
Name | Type | 描述 |
---|---|---|
limit | number | 一次异步操作的最大数量 |
detectSeries
和detect一样,同一时间只运行一个(串行)