each

    iteratee使用coll中的每一个参数,并行的执行.如果在执行过程中发生错误,主回调立即被调用并抛出错误. 请注意,由于iteration是并行的,所以不能保证迭代函数按顺序完成.

    别名:forEach

    参数:

    Name Type Description
    coll 要迭代的集合
    iteration AsyncFunction 对每个参数使用(item,callback)的形势调用,但是不会获得数组的索引.如果需要索引,请使用 eachOf
    callbac function 所有的iteration完成或发生错误后回调,使用(err)的形势调用.

    案例:

    1. // assuming openFiles is an array of file names and saveFile is a function
    2.  
    3.  
    4. async.each(openFiles, saveFile, function(err){
    5. // if any of the saves produced an error, err would equal that error
    6. });
    7.  
    8.  
    9. async.each(openFiles, function(file, callback) {
    10.  
    11.  
    12. console.log( + file);
    13.  
    14. if( file.length > 32 ) {
    15. console.log();
    16. callback();
    17. } else {
    18.  
    19. console.log();
    20. callback();
    21. }
    22. }, function(err) {
    23. // if any of the file processing produced an error, err would equal that error
    24. if( err ) {
    25.  
    26.  
    27. console.log();
    28. } else {
    29. console.log();
    30. }
    31. });

    eachLimit

    1. eachLimit(coll,limit,iteratee,callback)

    和each一样,使用limit限制了一次运行异步操作的最大条数

    别名:forEachLimit

    eachOf

    1. eachOf(coll,iteratee,callback)

    和each一样,不过可以将coll中的,key(或index)作为第二个参数传递给iteration

    别名: forEachOf

    补充参数:

    Name Type Description
    iteratee AsyncFunction

    案例:

    1. var obj = {dev: "/dev.json", test: "/test.json", prod: "/prod.json"};
    2. var configs = {};
    3.  
    4. async.forEachOf(obj, function (value, key, callback) {
    5. fs.readFile(__dirname + value, "utf8", function (err, data) {
    6. if (err) return callback(err);
    7. try {
    8. configs[key] = JSON.parse(data);
    9. } catch (e) {
    10. return callback(e);
    11. }
    12. callback();
    13. });
    14. }, function (err) {
    15. if (err) console.error(err.message);
    16.  
    17. (configs);
    18. });

    eachOfLimit

    1. eachOfLimit(coll,limit,iteratee,callback)

    和 eachOf一样,通过limit限制并行的最大数.

    eachOfSeries

    1. eachOfSeries(coll, iteratee, callback)

    与eachOf 按顺序一次只运行一个异步操作相同

    别名: forEachOfSeries

    eachSeries

    与each 按顺序一次只执行一个异步操作相同

    别名: forEachSeries