Async: рддреНрд░реБрдЯрд┐ рдЙрддреНрд╕рд░реНрдЬрд┐рдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж async.map() рд╕реЗ рдЕрд╕рдВрд╕рд╛рдзрд┐рдд рдЖрдЗрдЯрдо рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛

рдХреЛ рдирд┐рд░реНрдорд┐рдд 10 рдЬреБрд▓ре░ 2017  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: caolan/async

рдирдорд╕реНрддреЗ,

рдорд╛рдирдЪрд┐рддреНрд░ (...) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХрд┐рддрдиреЗ рдЖрдЗрдЯрдо рдЕрднреА рддрдХ рдЖрдкреВрд░реНрддрд┐ рдХрд┐рдП рдЧрдП рд╕рдВрдЧреНрд░рд╣ рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рд╣реИрдВ, рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП iteratee рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рдЙрддреНрд╕рд░реНрдЬрд┐рдд рддреНрд░реБрдЯрд┐ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ?

рдореИрдВ рд╡рд┐рднрд┐рдиреНрди urlsparams, рдЖрджрд┐ рдХреА рдПрдХ рд╕рд░рдгреА рдХреЗ рд▓рд┐рдП рдХрдИ рдЖрдЙрдЯрдЧреЛрдЗрдВрдЧ HTTP рдЕрдиреБрд░реЛрдз (рдиреЛрдб request рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП map рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдЗрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдореБрдЭреЗ рдПрдХ рд╡рд┐рд╢реЗрд╖ рддреНрд░реБрдЯрд┐ рдорд┐рд▓ рд╕рдХрддреА рд╣реИ рд▓рдХреНрд╖реНрдп рд╕рд░реНрд╡рд░ рд╕реЗ рдЬрд┐рд╕реЗ рдореИрдВ рд╕рдВрднрд╛рд▓ рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рдореИрдВ рдЙрд╕ рдореМрдЬреВрджрд╛ рдЖрдЗрдЯрдо рдХреЛ рдлрд┐рд░ рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬрд┐рд╕ рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдХреЛрдИ рднреА рд╢реЗрд╖ рдЬреЛ map рдЕрднреА рддрдХ рдирд╣реАрдВ рдЙрдард╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реБрдЖ рдХрд┐ рд╢рд╛рдпрдж рдореЗрд░реЗ рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдЖрдЗрдЯрдо рдкрд░ рдПрдХ рдзреНрд╡рдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬрд┐рд╕ рдкрд░ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ (рддреНрд░реБрдЯрд┐ рдХреЗ рдмрд┐рдирд╛) рдХрд╛рдо рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЬрдм рддреНрд░реБрдЯрд┐ рдЙрддреНрд╕рд░реНрдЬрд┐рдд рд╣реЛ рдЬрд╛рддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдореБрдЭреЗ рд░реВрдЪрд┐ рд╣реИ, рддреЛ рдЗрд╕реЗ рддрджрдиреБрд╕рд╛рд░ рд╕рдВрднрд╛рд▓ рд▓реЗрдВред рдлрд┐рд░ рд╢рд╛рдпрдж рдЙрди рдЖрдЗрдЯрдореНрд╕ рд╕реЗ рдПрдХ рдирдИ рд╕рд░рдгреА рдмрдирд╛рдПрдВ рдЬрд┐рдирдореЗрдВ рдзреНрд╡рдЬ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдЭреВрдард╛ рд╣реИ рдЬреЛ рдЕрднреА рддрдХ рд╕рдВрд╕рд╛рдзрд┐рдд рдирд╣реАрдВ рд╣реБрдП рд╣реИрдВ рдФрд░ рдЗрди рдкрд░ рдПрдХ рдФрд░ map рдкреНрд░рджрд░реНрд╢рди рдХрд░рддреЗ рд╣реИрдВ, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рд╣реБрдП рдХрд┐ рдореИрдВ рдореВрд▓ рдорд╛рдирдЪрд┐рддреНрд░ рд╕реЗ рдореВрд▓ рдЕрдВрддрд┐рдо рдХреЙрд▓рдмреИрдХ рдХрд╛ рдЖрд╣реНрд╡рд╛рди рдХрд░рддрд╛ рд╣реВрдВред

рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдХреЛрдИ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдореИрдВрдиреЗ рдЬреЛ рд╣рд╛рд╕рд┐рд▓ рдХрд┐рдпрд╛ рд╣реИ рдЙрд╕реЗ рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ?

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рд╣рд╛рдп @ parky128 , рдкреНрд░рд╢реНрди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

iteratee рдХреЛ reflect рдХрд╛рдо рдХреЗ рд╕рд╛рде рд▓рдкреЗрдЯрдирд╛ рд╣реЛрдЧрд╛? reflect рд╣рдореЗрд╢рд╛ рдПрдХ рдкрд░рд┐рдгрд╛рдо рд╡рд╕реНрддреБ рдХреЛ callback , рдЗрд╕рд▓рд┐рдП рднрд▓реЗ рд╣реА iteratee рддреНрд░реБрдЯрд┐ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реЛ, map рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдлрд┐рд░ рдЖрдк results рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ map рд╕реЗ рдкреБрдирд░рд╛рд╡реГрддрд┐ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХрд┐рд╕рдХреЗ рдкрд╛рд╕ error рд╕рдВрдкрддреНрддрд┐ рд╣реИ, рдФрд░ рдлрд┐рд░ рддрджрдиреБрд╕рд╛рд░ рдЗрд╕реЗ рд╕рдВрднрд╛рд▓ рд▓реЗрдВред рдЖрдкрдХреЛ рдХрд┐рд╕реА рднреА рдЖрдЗрдЯрдо рдХреЛ рдлрд┐рд░ рд╕реЗ рдкреНрд░реЛрд╕реЗрд╕ рдирд╣реАрдВ рдХрд░рдирд╛ рдкрдбрд╝реЗрдЧрд╛ рдЬрд┐рд╕реЗ map рдиреЗ рдирд╣реАрдВ рдЙрдард╛рдпрд╛ рд╣реЛрдЧрд╛ред

async.map(coll, async.reflect(function(val, callback) {
  // your request code
}, function(err, results) {
  // err will always be null now
  results.forEach(function(result, i) {
    if (result.error) {
      // your code for handling errors
      // if `coll` is an array, you could access the value that caused 
      // this error through `coll[i]` as `map` preserves the order for arrays 
    } else {
      // otherwise `result.value` will contain the result of that `iteratee` call
    }
  });
});

рдЕрдиреНрдпрдерд╛, рдЖрдкрдХреЗ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП, map рд╣рдореЗрд╢рд╛ рдПрдХ array рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдЖрдк рдЙрд╕ рд╕рд░рдгреА рдкрд░ рдкреБрдирд░рд╛рд╡реГрддрд┐ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЬрд╛рдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕реЗ рдорд╛рди рд╣реИрдВ undefined ред рд╡реЗ рдЖрдЗрдЯрдо (рдУрдВ) рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛрдВрдЧреЗ рдЬреЛ рдпрд╛ рддреЛ рддреНрд░реБрдЯрд┐рдкреВрд░реНрдг рдереЗ, undefined рдХреЛ рдЙрдирдХреЗ callback рдкрд╛рд░рд┐рдд рдХрд░ рджрд┐рдпрд╛, рдЬрдм error рд╣реБрдЖ рдпрд╛ рд╢реБрд░реВ рдирд╣реАрдВ рд╣реБрдЖ рдерд╛ред reflect рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╢рд╛рдпрдж рд╕реБрд░рдХреНрд╖рд┐рдд рд╡рд┐рдХрд▓реНрдк рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ undefined iteratee рдХреЙрд▓ рд╕реЗ рдПрдХ рд╡реИрдз рдкрд░рд┐рдгрд╛рдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рд╕рднреА 5 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд╣рд╛рдп @ parky128 , рдкреНрд░рд╢реНрди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

iteratee рдХреЛ reflect рдХрд╛рдо рдХреЗ рд╕рд╛рде рд▓рдкреЗрдЯрдирд╛ рд╣реЛрдЧрд╛? reflect рд╣рдореЗрд╢рд╛ рдПрдХ рдкрд░рд┐рдгрд╛рдо рд╡рд╕реНрддреБ рдХреЛ callback , рдЗрд╕рд▓рд┐рдП рднрд▓реЗ рд╣реА iteratee рддреНрд░реБрдЯрд┐ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реЛ, map рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдлрд┐рд░ рдЖрдк results рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ map рд╕реЗ рдкреБрдирд░рд╛рд╡реГрддрд┐ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХрд┐рд╕рдХреЗ рдкрд╛рд╕ error рд╕рдВрдкрддреНрддрд┐ рд╣реИ, рдФрд░ рдлрд┐рд░ рддрджрдиреБрд╕рд╛рд░ рдЗрд╕реЗ рд╕рдВрднрд╛рд▓ рд▓реЗрдВред рдЖрдкрдХреЛ рдХрд┐рд╕реА рднреА рдЖрдЗрдЯрдо рдХреЛ рдлрд┐рд░ рд╕реЗ рдкреНрд░реЛрд╕реЗрд╕ рдирд╣реАрдВ рдХрд░рдирд╛ рдкрдбрд╝реЗрдЧрд╛ рдЬрд┐рд╕реЗ map рдиреЗ рдирд╣реАрдВ рдЙрдард╛рдпрд╛ рд╣реЛрдЧрд╛ред

async.map(coll, async.reflect(function(val, callback) {
  // your request code
}, function(err, results) {
  // err will always be null now
  results.forEach(function(result, i) {
    if (result.error) {
      // your code for handling errors
      // if `coll` is an array, you could access the value that caused 
      // this error through `coll[i]` as `map` preserves the order for arrays 
    } else {
      // otherwise `result.value` will contain the result of that `iteratee` call
    }
  });
});

рдЕрдиреНрдпрдерд╛, рдЖрдкрдХреЗ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП, map рд╣рдореЗрд╢рд╛ рдПрдХ array рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдЖрдк рдЙрд╕ рд╕рд░рдгреА рдкрд░ рдкреБрдирд░рд╛рд╡реГрддрд┐ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЬрд╛рдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕реЗ рдорд╛рди рд╣реИрдВ undefined ред рд╡реЗ рдЖрдЗрдЯрдо (рдУрдВ) рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛрдВрдЧреЗ рдЬреЛ рдпрд╛ рддреЛ рддреНрд░реБрдЯрд┐рдкреВрд░реНрдг рдереЗ, undefined рдХреЛ рдЙрдирдХреЗ callback рдкрд╛рд░рд┐рдд рдХрд░ рджрд┐рдпрд╛, рдЬрдм error рд╣реБрдЖ рдпрд╛ рд╢реБрд░реВ рдирд╣реАрдВ рд╣реБрдЖ рдерд╛ред reflect рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╢рд╛рдпрдж рд╕реБрд░рдХреНрд╖рд┐рдд рд╡рд┐рдХрд▓реНрдк рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ undefined iteratee рдХреЙрд▓ рд╕реЗ рдПрдХ рд╡реИрдз рдкрд░рд┐рдгрд╛рдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рди рдХреА рдкреЗрд╢рдХрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ async.map рдЕрдВрддрд┐рдо рдХреЙрд▓рдмреИрдХ рдЙрд╕ рд╡рд┐рд╢реЗрд╖ рддреНрд░реБрдЯрд┐ рдорд╛рдорд▓реЗ рдХреЗ рд╕рд╛рде iteratee рдлрд╝рдВрдХреНрд╢рди рддреНрд░реБрдЯрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд▓реНрдж рд╕реЗ рдЬрд▓реНрдж рд▓рд╛рдЧреВ рд╣реЛ рдЬрд╛рдП рдЬрд┐рд╕реЗ рдореИрдВ рдкрдХрдбрд╝рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреЛ рджреЗрдЦрдХрд░ рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рдкреБрдирд░рд╛рд╡реГрддреНрдд рдХреЙрд▓рдмреИрдХ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рддреНрд░реБрдЯрд┐ рдкрд╛рд╕ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдЕрдВрддрд┐рдо рдХреЙрд▓рдмреИрдХ рдореЗрдВ async.map рдЖрд╣реНрд╡рд╛рди рдХрд░реЗрдЧрд╛, рдХреНрдпрд╛ рдореИрдВ рдореВрд▓ рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрд╕ рдкрд░рд┐рдгрд╛рдо рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рд╕рдВрдЧреНрд░рд╣ рдХрд░реЗрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рдмрд╛рдХреА рд╣реИред

рдореИрдВ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ рдХрд┐ async.map рдХрд┐рд╕реА рдЕрдиреНрдп рдЕрдиреБрд░реЛрдз рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗ рдЬреИрд╕реЗ рд╣реА рдЗрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рдПрдХ рддреНрд░реБрдЯрд┐ рдорд╛рдорд▓рд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдореБрдЭреЗ рд░реВрдЪрд┐ рд╣реИред

рдореИрдВ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ рдХрд┐ async.map рдХрд┐рд╕реА рдЕрдиреНрдп рдЕрдиреБрд░реЛрдз рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗ рдЬреИрд╕реЗ рд╣реА рдЗрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рдПрдХ рддреНрд░реБрдЯрд┐ рдорд╛рдорд▓рд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдореБрдЭреЗ рд░реВрдЪрд┐ рд╣реИред

рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рдЖрдкрдХрд╛ iteratee рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╣реИ, async.map рдЕрдВрддрд┐рдо рдХреЙрд▓рдмреИрдХ рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рдкрд░ рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрдЧрд╛ред рдЖрдк рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдкрд░рд┐рдгрд╛рдо рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рддреБрд▓рдирд╛ рд╕рдВрдЧреНрд░рд╣ рд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХрд┐рди рд╡рд╕реНрддреБрдУрдВ рдиреЗ рдЕрднреА рддрдХ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдЗрд╕рдХреЗ рдЧреЛрдЪрд░ рднреА рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрд╕реЗ рд╕рдордХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЙрд╕реА рдЯрд┐рдХ рдкрд░ рдЕрдВрддрд┐рдо рдХреЙрд▓рдмреИрдХ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдкрд░рд┐рдгрд╛рдо рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ iteratee s рд╕рдорд╛рдзрд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдЖрдк mapSeries рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред mapSeries рдПрдХ рдмрд╛рд░ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдЕрдиреБрд░реЛрдз рдЪрд▓рд╛рдПрдЧрд╛ред рдпрд╛рдиреА рдпрд╣ рдХреЗрд╡рд▓ рдЕрдЧрд▓реЗ рдЖрдЗрдЯрдо рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ рдЬрдм рд╡рд░реНрддрдорд╛рди рдПрдХ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ (рдЬреИрд╕рд╛ рдХрд┐ рдЙрди рд╕рднреА рдХреЛ рдПрдХ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд╡рд┐рдкрд░реАрдд)ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЬрдм рдХреЛрдИ рддреНрд░реБрдЯрд┐ рд╣реЛрддреА рд╣реИ, рдФрд░ рдЕрдВрддрд┐рдо рдХреЙрд▓рдмреИрдХ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХреЛрдИ рдФрд░ iteratee s рдирд╣реАрдВ рдЪрд▓реЗрдЧрд╛ред рдлрд┐рд░ рдЖрдк рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рддреБрд▓рдирд╛ рд╕рдВрдЧреНрд░рд╣ рд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреМрди рд╕реЗ рдЖрдЗрдЯрдо рдЕрднреА рддрдХ рд╕рдВрд╕рд╛рдзрд┐рдд рдирд╣реАрдВ рд╣реБрдП рд╣реИрдВред рдпрд╣ рдЕрднреА рднреА рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рд╕рдорд╛рдзрд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ async.map рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдореБрдЦреНрдп рджреЛрд╖ рдпрд╣ рд╣реИ рдХрд┐ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдЕрдм рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдирд┐рдпрдВрддреНрд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХрд╛ рд╕рдВрдЧреНрд░рд╣ рдПрдХ рд╕рд░рдгреА рд╣реИ

async.mapSeries(coll, function(val, callback) {
  // your iteratee function
}, function(err, results) {
  if (err) {
    // unprocessItems will include the item that errored.
    var unprocessItems = coll.slice(results.length - 1);
    // handle the unprocessedItems
  }
});

рд╣рдореНрдо рдареАрдХ рд╣реИ, рд╣рд╛рдБ рдореЗрд░рд╛ iteratee рдлрд╝рдВрдХреНрд╢рди рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЖрдЙрдЯрдЧреЛрдЗрдВрдЧ http рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХреЗ рд╕рд╛рде рдореИрдВ рдЗрд╕рд╕реЗ рдХреЙрд▓рдмреИрдХ рдХрд░рддрд╛ рд╣реВрдВред рддреЛ рдЕрдЧрд░ рдореИрдВ рдХрд╣рддрд╛ рд╣реВрдВ рдХрд┐ 10 рдЖрдЗрдЯрдо рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдереЗ, 4 рд╕рдлрд▓ рд╣реБрдП рдФрд░ 5 рд╡рд╛рдВ рдЕрд╕рдлрд▓ рд░рд╣рд╛, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдореИрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рдкрд░рдо рдХреЗ рд╕рд╛рде рдкреБрдирд░рд╛рд╡реГрддреНрдд рдлрд╝рдВрдХреНрд╢рди рдкрд░ рдХреЙрд▓рдмреИрдХ рдХрд╛ рдЖрд╣реНрд╡рд╛рди рдХрд░реВрдВрдЧрд╛, рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЕрдВрддрд┐рдо рдХреЙрд▓рдмреИрдХ рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рдСрдмреНрдЬреЗрдХреНрдЯ async.map рдореЗрдВ рд╣реЛрдЧрд╛ рдХреЗрд╡рд▓ 4 рд╕рдлрд▓ рдкрд░рд┐рдгрд╛рдо?

рдЕрдЧрд░ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рддреЛ рдЕрднреА рдХреЗ рд▓рд┐рдП рдореИрдВ рдЗрд╕ рддрдереНрдп рдХреЗ рд╕рд╛рде рд░рд╣реВрдВрдЧрд╛ рдХрд┐ рдпрд╣ рдЕрднреА рднреА рд╕рднреА рдЖрдЙрдЯрдЧреЛрдЗрдВрдЧ рдХреЙрд▓ рдХрд░реЗрдЧрд╛ред рдореИрдВ рдЕрдкрдиреА рд╕рд░рдгреА рдХреЛ рдЫреЛрдЯреЗ рд╕рд░рдгрд┐рдпреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдФрд░ рд▓рдХреНрд╖реНрдп рд╕рд░реНрд╡рд░ рдкрд░ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╣рд┐рдЯ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╛рдирдЪрд┐рддреНрд░ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рднреАрддрд░ рдЫреЛрдЯреЗ async.maps рдкреНрд░рджрд░реНрд╢рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрди рдбрд╛рдЙрди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдЕрдиреБрд░реЛрдз рд╣рд┐рдЯ рд╣реЛ рд░рд╣реЗ рд╣реИрдВред

@hargasinski - рдореИрдВрдиреЗ async.reflect рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ, рдореБрдЭреЗ рдЙрди рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рдХреА рдкреВрд░реНрдг рджреГрд╢реНрдпрддрд╛ рджреЗрддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рддреНрд░реБрдЯрд┐ рджреА: +1:

рдзрдиреНрдпрд╡рд╛рдж!

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

gone-phishing picture gone-phishing  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

mjafarpour picture mjafarpour  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

trvra picture trvra  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

JustinBeaudry picture JustinBeaudry  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

AaronAcerboni picture AaronAcerboni  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ