码迷,mamicode.com
首页 > 其他好文 > 详细

async 中文文档

时间:2017-08-04 15:14:42      阅读:707      评论:0      收藏:0      [点我收藏+]

标签:通过   erro   config   catch   import   需要   option   iterable   最大数   

 

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 中文文档

标签:通过   erro   config   catch   import   需要   option   iterable   最大数   

原文地址:http://www.cnblogs.com/webday/p/7285037.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!