async 中文文档
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了async 中文文档相关的知识,希望对你有一定的参考价值。
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(参数)
Name | Type | Description |
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:
Name | Type | Description |
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(参数)
Name | Type | Description |
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
以上是关于async 中文文档的主要内容,如果未能解决你的问题,请参考以下文章
使用 es7 async/await 检查 mongodb 中是不是存在文档