集合(一) collections - sanlex/async_chinese GitHub Wiki

集合

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

主要方法

concat

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

concat(coll, iteratee, callback(err))

参数:

Name Type 描述
coll Array/Iterable/Object 可以迭代的 集合
iteratee AsyncFunction 每个参数将会被使用的函数,将使用(item,callback)方式调用
callback(err) function 说有的 iteratee 被调用之后的回调
//案例
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 Array/iterable/Object 要迭代的集合
iteratee AsyncFunction 用于测试coll中的每一项,返回值为boolean,使用(item,callback)方式调用
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) {
    // result 为第一个符合条件的参数
});

detectLimit

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

detectLimit(coll,limit,iteratee,callback)

别名: findLimit

补充参数:

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

detectSeries

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

detectSeries(coll,iteratee,callback)

上一篇 首页
下一篇 集合(二) each

⚠️ **GitHub.com Fallback** ⚠️