git URL:https://github.com/dxr199212300/async-Translation.git
Collections
async中的collection是为了操纵集合的函数,例如Arrays和object
Methods (方法)
concat(coll, iteratee, callback(err)opt)
应用iteratee(迭代器)去遍历每个coll,将结果串联后,返回串联列,
由于iteratee是并行的,因此不能保证数据可以完整并按顺序的返回。
Parameters(参数)
coll Array | lterable | object 遍历的集合
iteratee AsyncFunction 用于遍历Coll的迭代器,结果将返回一个数组,调用 ( item, callback )
callback( err ) function<optional> 在全部的iteratee结束以后调用callback,或者出现一个error,结果是包含了 iteratee返回的结果的一个数组
Example(实例)
async.concat(['dir1','dir2','dir3'], fs.readdir, function(err, files) {
// 如今文件的文件名列表中存在3目录
});
concatLimit(coll, limit, iteratee, callbackopt)
import concatLimit from 'async/concatLimit’;
和concat同样 可是限制了每次异步操做时的容许的并发执行的任务数量
Parameters:
Coll Array | lterable |Object 遍历集合
limit number 每次异步操做时的最大数量
iteratee AsyncFunction 用于遍历Coll,应用数组做为结果,调用 ( item, callback )
callback(err) function<optional> 在全部的iteratee结束以后调用callback,或者出现一个error,结果是一个数组包含了iteratee返回的结果
detect(coll, iteratee, callbackopt)
import detect from 'async/detect’;
经过异步测试返回第一个值到coll,iteratee是并行的,意味着第一个iteratee迭代器返回ture时,call只会返回一个结果
这意味着返回的第一项可能不是原始coll顺序进行测试的,若是原顺序很重要,那么能够看看 detectSeries
别名: find
Parameters(参数)
Coll Array | lterable | Object 遍历集合
iteratee asyncFucntion 真假测试coll的每一项,结果必须是迭代器返回的一个布尔值
callback function<optional> 任何迭代器返回ture,或者所有迭代器结束时callback将被触发,
结果将返回经过真假测试的数组中的第一项,或者值为undefined,
若是没有经过,调用(err,result)
detectLimit(coll, limit, iteratee, callbackopt)
import detectLimit from 'async/detectLimit’;
等同于detect 可是限制了每次异步操做时的容许的并发执行的任务数量
别名: findLimit
Parameters:
Name Type Description
coll Array | alterable | Object 遍历集合
limit number 每次异步操做时的容许的并发执行的任务数量
iteratee AsyncFunction 应用于coll的真假测试,迭代器必须将布尔值做为结果,调用(item,callback)
callback function <optional> 任何迭代器返回ture,或者全部迭代器运行结束时调用回调。结果将返回数组第一项,经过真假测试或者 值未定义的数组,调用(err,result)
detectSeries(coll, iteratee, callbackopt)
import detectSeries from 'async/detectSeries';
等同于detect 可是限制了每次异步操做时的容许的并发执行的任务数量
别名: findSeries
Parameters:
Name Type Description
coll Array | alterable | Object 遍历集合
iteratee AsyncFunction 应用于coll的真假测试,迭代器必须将布尔值做为结果,调用(item,callback)
callback function <optional> 任何迭代器返回ture,或者全部迭代器运行结束时调用回调。结果将返回数组第一项,经过真假测试或者 值未定义的数组,调用(err,result)
each(coll, iteratee, callbackopt)
import each from 'async/each’;
并行的应用迭代器去遍历coll。 iteratee将调用数组列表,callback在它结束时进行回调。
若是迭代器传递了一个error给callback,callback将回调一个error
注意,因为迭代器时并行的,因此不能确保迭代器能够返回完整的原始数据
Alias: forEach
Parameters:
Name type description
coll Array | alterable | Object 遍历集合
iteratee AsyncFunction 应用于遍历coll的异步函数,调用(item,callback) 数组的index(下标)没有经过iteratee,若是你须要index,使用eachof
callback function<optional> 当全部iteratee结束时执行回调,或者error出现,调用(err)
Example
// assuming openFiles is an array of file names and saveFile is a function
假设openfiles是一个属于文件名的数组,saveFile是一个函数
// to save the modified contents of that file:
保存在另外一个文件修改的内容
async.each(openFiles, saveFile, function(err){
// if any of the saves produced an error, err would equal that error
});
// assuming openFiles is an array of file names
async.each(openFiles, function(file, callback) {
// Perform operation on file here.
console.log('Processing file ' + file);
if( file.length > 32 ) {
console.log('This file name is too long');
callback('File name too long');
} else {
// Do work to process file here
console.log('File processed');
callback();
}
}, function(err) {
// if any of the file processing produced an error, err would equal that error
if( err ) {
// One of the iterations produced an error.
// All processing will now stop.
console.log('A file failed to process’);
} else {
console.log('All files have been processed successfully’);
}
});
eachLimit(coll, limit, iteratee, callbackopt)
import eachLimit from 'async/eachLimit';
等同于each 可是限制了每次异步操做时的容许的并发执行的任务数量
Parameters:
Name Type Description
coll Array | alterable | Object 遍历集合
limit number 每次异步操做时的容许的并发执行的任务数量
iteratee AsyncFunction 应用于遍历coll的异步函数,数组下标并不经过迭代器,如 果你须要用到index,使用eachOfLimit,调用 (item,callback)
callback function<optional> 当全部迭代器结束或者出现一个错误调用(err)
eachOf(coll, iteratee, callbackopt)
import eachOf from 'async/eachOf';
像是each同样,除了它经过了一个键值(下标)作为了第二个参数传递给迭代器
别名: forEachOf
Parameters:
Name Type Description
coll Array | alterable | Object 遍历集合
iterable AsyncFunction 应用于遍历coll,key是项的key,或索引的数组,调用(item,key,callback)
callback function<optional> 当全部迭代器结束或者出现一个错误调用(err)
Example
var obj = {dev: "/dev.json", test: "/test.json", prod: "/prod.json”};
var configs = {};
async.forEachOf(obj, function (value, key, callback) {
fs.readFile(__dirname + value, "utf8", function (err, data) {
if (err) return callback(err);
try {
configs[key] = JSON.parse(data);
} catch (e) {
return callback(e);
}
callback();
});
}, function (err) {
if (err) console.error(err.message);
// configs is now a map of JSON data
doSomethingWith(configs);
});
eachOfLimit(coll, limit, iteratee, callbackopt)
import eachOfLimit from 'async/eachOfLimit';
等同于eachOf 可是限制了每次异步操做时的容许的并发执行的任务数量
Parameters:
Name Type Description