Async: рдкреБрдирд░рд╛рд╡реГрддрд┐ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ AsyncFunction рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдкреБрдирд░рд╛рд╡реГрддрд┐ рдХреЛ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ

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

рдЖрдк рдПрд╕рд┐рдВрдХ рдХрд╛ рдХрд┐рд╕ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?
2.5.0

рд╕рдорд╕реНрдпрд╛ рдХрд┐рд╕ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд╣реБрдИ (рдиреЛрдб рд╕рдВрд╕реНрдХрд░рдг/рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдВрд╕реНрдХрд░рдг)
рдУрдПрд╕ рд╕рдВрд╕реНрдХрд░рдг: рдУрдПрд╕ рдПрдХреНрд╕ 10.12.6
рдиреЛрдб рд╕рдВрд╕реНрдХрд░рдг: 8.4.0
рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдВрд╕реНрдХрд░рдг: рд▓рд╛рдЧреВ рдирд╣реАрдВ

рдХреНрдпрд╛ рдХрд┐рдпрд╛ рддреБрдордиреЗ?

// templateNames is an array of strings
async.map(templateNames, async (templateName, next) => {   
  let template;
  try {
    template = await utils.getFile(templateName);
  } catch(err) {
    next(err);
  }
...
// and so on

рдЖрдкрдиреЗ рдХреНрдпрд╛ рд╣реЛрдиреЗ рдХреА рдЙрдореНрдореАрдж рдХреА рдереА?
next рдПрдХ рдкреБрдирд░рд╛рд╡реГрддрд┐ рдлрд╝рдВрдХреНрд╢рди рд╣реИ

рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рдгрд╛рдо рдХреНрдпрд╛ рдерд╛?
next рд╣реИ undefined


рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд▓рдХреНрд╖реНрдп рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП .then().catch() рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдорд╛рдкреНрдд рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдЗрд╕реЗ AsyncFunction рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ ( рдиреЛрдЯ: рдпрд╣ async рдкрд░рд┐рднрд╛рд╖рд╛ рдирд╣реАрдВ рд╣реИ рдмрд▓реНрдХрд┐ рдореВрд▓ AsyncFunction Object ) рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдкреБрдирд░рд╛рд╡реГрддрд┐ ( next ) рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╣реЛрддрд╛ рд╣реИ undefined ред

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

async рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЛ 2.3.0 рдХреЗ рд░реВрдк рдореЗрдВ рдЕрд▓рдЧ рддрд░рд╣ рд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдЙрдиреНрд╣реЗрдВ рдХреЙрд▓рдмреИрдХ рдкрд╛рд╕ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдмрд╕ рдПрдХ рдорд╛рди (рдпрд╛ рд╡рд╛рджрд╛) рд╡рд╛рдкрд╕ рдХрд░реЗрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЖрдкрдХреЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, try / catch рднреА рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдлреЗрдВрдХреА рдЧрдИ рдХреЛрдИ рднреА рддреНрд░реБрдЯрд┐ Async рджреНрд╡рд╛рд░рд╛ рдкрдХрдбрд╝реА рдЬрд╛рдПрдЧреАред рдпрд╣ рдЖрдкрдХреЗ рдХреЛрдб рдХреЛ рдереЛрдбрд╝рд╛ рд╕рд╛ рд╕рд░рд▓ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

// templateNames is an array of strings
async.map(templateNames, async templateName => {   
  const template = await utils.getFile(templateName);
...
// and so on

AsyncFunction рджрд╕реНрддрд╛рд╡реЗрдЬрд╝: http://caolan.github.io/async/global.html

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

async рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЛ 2.3.0 рдХреЗ рд░реВрдк рдореЗрдВ рдЕрд▓рдЧ рддрд░рд╣ рд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдЙрдиреНрд╣реЗрдВ рдХреЙрд▓рдмреИрдХ рдкрд╛рд╕ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдмрд╕ рдПрдХ рдорд╛рди (рдпрд╛ рд╡рд╛рджрд╛) рд╡рд╛рдкрд╕ рдХрд░реЗрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЖрдкрдХреЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, try / catch рднреА рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдлреЗрдВрдХреА рдЧрдИ рдХреЛрдИ рднреА рддреНрд░реБрдЯрд┐ Async рджреНрд╡рд╛рд░рд╛ рдкрдХрдбрд╝реА рдЬрд╛рдПрдЧреАред рдпрд╣ рдЖрдкрдХреЗ рдХреЛрдб рдХреЛ рдереЛрдбрд╝рд╛ рд╕рд╛ рд╕рд░рд▓ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

// templateNames is an array of strings
async.map(templateNames, async templateName => {   
  const template = await utils.getFile(templateName);
...
// and so on

AsyncFunction рджрд╕реНрддрд╛рд╡реЗрдЬрд╝: http://caolan.github.io/async/global.html

тАНтЩВя╕П рдбреЙрдХреНрд╕ рдХреЗ рдЙрд╕ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрдврд╝рдирд╛ рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрддрд╛ред рдзрдиреНрдпрд╡рд╛рджред

рдирд┐рд╖реНрдкрдХреНрд╖рддрд╛ рдореЗрдВ, рдпрд╣ рд╡рд┐рд╡рд░рдг рдбреЙрдХреНрд╕ рд╕рд╛рдЗрдЯ рдкрд░ рдЙрддрдирд╛ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ...

рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рд╣реИред рдореИрдВрдиреЗ рд╢реБрд░реБрдЖрдд рдореЗрдВ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдкрд░ рдирдЬрд╝рд░ рдбрд╛рд▓реА рдФрд░ рдЙрд╕ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдпрд╛рдж рдХрд┐рдпрд╛ред

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

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

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

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

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

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

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