рд╕рднреА рдХреЛ рдкреНрд░рдгрд╛рдо
рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреЛ рджреЗрдЦрдХрд░, рдореИрдВ async.map
рдвреВрдВрдв рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдкреБрдирд░рд╛рд╡рд░реНрддрдХ рдХреА рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдХреЙрд▓рдмреИрдХ рдХреЛ рдкрд╛рд╕ рдХрд░ рджреА рдЧрдИ рд╣реИред
async.each
, рдПрдирд╛рд▓реЙрдЧ async.eachOf
ред рд▓реЗрдХрд┐рди рдореБрдЭреЗ async.mapOf
рдпрд╛ рдХреНрдпрд╛ рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИред
рдХреНрдпрд╛ рд╡рд╣рд╛рдВ рдРрд╕реА рдХреЛрдИ рдЪреАрдЬ рд╣реИ? рдЕрдЧрд░ рдЖрдкрдХреЛ рдФрд░ рдЬрд╛рдирдХрд╛рд░реА рдЪрд╛рд╣рд┐рдП рддреЛ рдореБрдЭреЗ рдмрддрд╛рдПрдВ, рдзрдиреНрдпрд╡рд╛рдж!
рдЕрд░реЗ :) рдХреНрдпрд╛ рдЖрдкрдХреЛ рдЗрд╕ рдЙрддреНрддрд░ рдХреЗ рд╕рдорд╛рди рдЪрд╛рд╣рд┐рдП - http://stackoverflow.com/a/31821896 ред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдПрдХ рдЙрдкрдирд╛рдо/рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рд╡рд┐рдзрд┐ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ async.forEachOf
рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ, рдЬрдм рднреА рдЖрдк async.mapOf
рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ, рдпрджрд┐ рдЖрдкрдХреЛ рд╡рд╣ рдирд╛рдо рдЕрдзрд┐рдХ рдЙрдкрдпреБрдХреНрдд рд▓рдЧрддрд╛ рд╣реИред
@jpalala рдХреНрдпрд╛ рдЪрд▓ рд░рд╣рд╛ рд╣реИ рдЬреЛ! рдореБрдЭреЗ рдЗрд╕реЗ рдПрдХ рд╢реЙрдЯ рджреЗрдиреЗ рджреЛ, рдЪреАрдЬреЗрдВ рдХреИрд╕реА рдЪрд▓ рд░рд╣реА рд╣реИрдВ?
рдХреНрдпрд╛ async.forEachOf
рдЕрдВрддрд┐рдо рдХреЙрд▓рдмреИрдХ рдЬреИрд╕реЗ async.map
рдбреЗрдЯрд╛ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИ?
рд╣рдо рдареАрдХ рд╣реИрдВ рд╡реИрд╕реЗ рднреА рдпрд╣рд╛рдБ рдореИрдВрдиреЗ рдбреЗрдЯрд╛ рд╡рд╛рдкрд╕ рдкрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ:
var async = require('async');
async.forEachOf(['a', 'b', 'c'], function () {
console.log(arguments[1]);
});
~ forEachOf
рдФрд░ рдкрд░рд┐рд╡рд╛рд░ рдХреЙрд▓рдмреИрдХ рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рдкрд╛рд╕ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдХреБрдВрдЬреА рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдХреБрдЫ рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:~
async.forEach(_.entries(obj), ( [key, value], next ) => {
// do whatever
}, done);
~рдзреНрдпрд╛рди рд░рдЦреЗрдВ, рдпрд╣ рдПрдХ рд╕рд░рдгреА рд▓реМрдЯрд╛рдПрдЧрд╛, рдФрд░ рдЖрджреЗрд╢ рдХреА рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рд╣реЛрдЧреАред рдЖрдкрдХреЛ рдкрд░рд┐рдгрд╛рдо рд╡рд╕реНрддреБ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ред~
рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: mapValues
рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
рдореИрдкрд╡реИрд▓реНрдпреВ рдХреНрдпреЛрдВ рдирд╣реАрдВ?
async.mapValues( (val, key, next) => {
// do whatever
}, (err, obj) => {
let result = _.toArray(obj);
});
@ ex1st рд╣реБрд╣ рдЬреЛ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ!
рд╣рд╛рдБ, рдореИрдВрдиреЗ рдЬреЛ рдХрд╣рд╛ рдЙрд╕рдХреА рдЕрд╡рд╣реЗрд▓рдирд╛ рдХрд░реЗрдВ, mapValues
рдареАрдХ рд╡рд╣реА рд╣реИ рдЬреЛ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рд╣рдо рдареАрдХ рд╣реИрдВ рд╡реИрд╕реЗ рднреА рдпрд╣рд╛рдБ рдореИрдВрдиреЗ рдбреЗрдЯрд╛ рд╡рд╛рдкрд╕ рдкрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ: