Mongoose: рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХрд┐ рдХреМрди рд╕рд╛ ES6 рд╡рд╛рджрд╛ рдХрд░рддрд╛ рд╣реИ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдиреЗрд╡рд▓рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 17 рдлрд╝рд░ре░ 2015  ┬╖  45рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: Automattic/mongoose

#1699 . рдкрд░ рдЪрд░реНрдЪрд╛ рджреЗрдЦреЗрдВ

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

рд╣рд╛рдБ require('mongoose').Promise = global.Promise рдиреЗрд╡рд▓реЗ рдХреЛ рдореВрд▓ рд╡рд╛рджреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд░реЗрдЧрд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕реА рднреА ES6 рдкреНрд░реЙрдорд┐рд╕ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдЕрднреА рд╣рдо рдХреЗрд╡рд▓ рджреЗрд╢реА, рдмреНрд▓реВрдмрд░реНрдб рдФрд░ Q рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╣реИрдВ

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

рд╕рднреА рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛рдо рд╣реЛ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж рдХреБрдЫ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Promise.all() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рддрддреНрдкрд░ рд╣реИрдВред

:+1:

рдПрдХ рдмрд╛рдд рдЬреЛ https://github.com/LearnBoost/mongoose/issues/1699 рдкрд░ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рдереА, рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реЛрдЧрд╛ред

рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдпрд╣ рдмреИрдХрд╡рд░реНрдб-рдмреНрд░реЗрдХрд┐рдВрдЧ рд░рд┐рд▓реАрдЬрд╝ рдирд╣реАрдВ рд╣реИ, mpromise рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реЛрдирд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЖрдк рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗред

+1

:+1:

рдХреНрдпрд╛ рдХреЛрдИ рд╢рд╛рдЦрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдЗрд╕реЗ рд╣реИрдХ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ? рдореИрдВ mpromise рдХреЗ рд╕рд╛рде рддреНрд░реБрдЯрд┐ рдкреНрд░рдмрдВрдзрди рдкреНрд░рд╡рд╛рд╣ рдХреЛ рдмрд░реНрджрд╛рд╢реНрдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдФрд░ рдореИрдВ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдЦреЛрд▓рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдХреНрдпрд╛ рд╣реЛрдЧрд╛ред

рд╕рдордЭреМрддрд╛:

  query.exec()
    .then(function(ou) {
      if(!ou) {
        return next(new errors.http.NotFound('The specified OU was either not found, or your credentials lack the required permissions to view it.'));
      }

      res.send(ou);
    }, next)
    .end(next);

рдЕрд╕реНрд╡реАрдХреГрддрд┐ рдХреЛ рд╕рдВрднрд╛рд▓рдирд╛ рд╣реИ рдФрд░ рд╡рд╣рд╛рдВ end рднреА рдбрд╛рд▓рдирд╛ рд╣реИред end рдХреЗ рдмрд┐рдирд╛, рдЕрдкрд╡рд╛рдж (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореЗрд░реЗ рдкрд╛рд╕ NotFound рд╡рд░реНрдЧ рдХреА рдЧрд▓рдд рд╡рд░реНрддрдиреА рдереА) рдЪреБрдкрдЪрд╛рдк рдирд┐рдЧрд▓ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдХреЗрд╡рд▓ рд╕реНрдЯрд╛рд▓реЛрдВ рдХреЛ рд╡реНрдпрдХреНрдд рдХрд░рддрд╛ рд╣реИред

рдмреНрд▓реВрдмрд░реНрдб:

  query.exec()
    .then(function(ou) {
      if(!ou) {
        return next(new errors.http.NotFound('The specified OU was either not found, or your credentials lack the required permissions to view it.'));
      }

      res.send(ou);
    })
    .catch(next);

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ promisifyAll(require('mongoose')) рдХрд░рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдм рддрдХ Mongoose 4 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рдХреНрдпрд╛ рдЗрд╕реЗ рдХрд╡рд░ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рддрд┐рдЧрдорди рдкрд░реАрдХреНрд╖рдг рдмрд╣реБрдд рд▓рдХреНрд╖рд┐рдд рд╣реЛрдВрдЧреЗ?

рдЗрд╕ рд╕рдордп рдирд╣реАрдВред рдЕрдзрд┐рдХрд╛рдВрд╢ рдХрд╛рдо рдХрд░реАрдо рдореЙрдбреНрдпреВрд▓ рдореЗрдВ #2754 рдФрд░ vkarpov15/karem#2 рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╣рдореЗрдВ рдПрдХ рдкрддреНрдерд░ рд╕реЗ рджреЛ рдкрдХреНрд╖рд┐рдпреЛрдВ рдХреЛ рдорд╛рд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ рдФрд░ рд╣реБрдХ рдФрд░ рд╡рд╛рджреЗ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦреА рдЧрдИ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЧрдиреНрджрд╛ рдмрд┐рдВрджреБ рдХрдЯ рдмрдХрд╡рд╛рд╕ рдХреЛ рд╣рдЯрд╛ рджреЗрдЧрд╛ред рдПрдХ рд╕рд╛рде рдХрд╛рдо рдХрд░реЛред рдЗрд╕ рдкрд░ рдПрдХ рджрд░рд╛рд░ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореИрдВ рдкреАрдЖрд░ рдХреЗ рд▓рд┐рдП рдЦреБрд▓рд╛ рд╣реВрдВред

рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдЕрдиреНрдп рд╡рд╛рджреЛрдВ рдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рд╕рдорд░реНрдерди рдХреНрдпреЛрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП? ES6 рдкреНрд░реЙрдорд┐рд╕ рд╕реНрдкреЗрдХ рдЕрдм рд░реЙрдХ-рд╕реЙрд▓рд┐рдб рд╣реИ рдФрд░ рдпрд╣рд╛рдВ рд░рд╣рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред рдХреНрдпрд╛ рд╣рдо рдХреЗрд╡рд▓ рд╢реБрджреНрдз ES6 рд╡рд╛рджреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрдм рд╡реЗ рдиреЛрдб рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ?

рдЕрдЧрд░ рдРрд╕рд╛ рд╣реИ рддреЛ рдореИрдВ рдЗрд╕реЗ рдЖрдЬрдорд╛ рд╕рдХрддрд╛ рд╣реВрдВред

рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдЬреЛ рднреА ES6-рд╕рдВрдЧрдд рд╡рд╛рджреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ рдЙрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗред рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рдЕрднреА рднреА рдмреНрд▓реВрдмрд░реНрдб рдореЗрдВ рднрд╛рд░реА рдирд┐рд╡реЗрд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдХрдм, рдХреНрдпреВ, рдЖрд░рдПрд╕рд╡реАрдкреА, рдЗрддреНрдпрд╛рджрд┐ред рдФрд░ рдЙрди рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреА рдЕрдкрдиреА рд╡рд┐рд╢реЗрд╖ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдкреЙрд▓реАрдлрд┐рд▓ рдХреИрдкреНрдЪрд░ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

рдореИрдВ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕реБрдЭрд╛рд╡реЛрдВ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реВрдВ - рдореИрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╡рд╛рджреЛрдВ рдХреЛ рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░рддрд╛ рдпрд╛ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛, рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдЗрд╕ рддрдереНрдп рд╕реЗ рдкреНрд░реЗрд░рд┐рдд рд╣реИ рдХрд┐ "рд╕рдорд░реНрдерди рдмреНрд▓реВрдмрд░реНрдб рдлреАрдЪрд░ рдПрдХреНрд╕ рдЗрди рдПрдордкреНрд░реЛрдорд╛рдЗрдЬ" рдпрд╛ "рджреЗрд╢реА rsvp.js рд╕рдорд░реНрдерди" рдХреЗ рд▓рд┐рдП рдкреВрдЫрдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред "рдФрд░ рд▓реЛрдЧреЛрдВ рдХреЛ рдкрд╛рд░реНрдЯреА рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╡рд╛рджреЛрдВ рдХрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд▓рд╛рдиреЗ рджреЗрдирд╛ рдЗрди рдореБрджреНрджреЛрдВ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИред

рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рддреБрдореНрд╣рд╛рд░рд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИред рдореИрдВ рдПрдХ рдмрдбрд╝рд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдФрд░ рд╡рд╛рджреЛрдВ рдХрд╛ рд╕рдорд░реНрдердХ рд╣реВрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдорд╛рдирдХ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
A+ рд╡рд╛рджреЛрдВ рдХреЛ ES6 рдХреЗ рд▓рд┐рдП рдЧреЛ-рдЯреВ рдХреЗ рд░реВрдк рдореЗрдВ рдЪреБрдирд╛ рдЧрдпрд╛ рд╣реИред рдореИрдВрдиреЗ ES6 рдЕрд╕рдВрдЧрдд рдиреЛрдб рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреЙрд▓реАрдлрд╝рд┐рд▓ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ (рдЬреИрд╕реЗред https://github.com/jakearchibald/es6-promise)ред

рдпрд╣ рдИрдПрд╕6 рд╡рд╛рджреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рдФрд░ рдорд┐рд╢реНрд░рд┐рдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рд╡рд╛рджреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд╣рд╛рдереЛрдВ рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:
рдФрд░ рд╡рд░реНрддрдорд╛рди рдПрдкреАрдЖрдИ рдореЗрдВ рдХреЛрдИ рддреЛрдбрд╝ рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдпрд╛ рдХреНрдпрд╛ рдореБрдЭреЗ рдХреБрдЫ рдпрд╛рдж рдЖ рд░рд╣рд╛ рд╣реИ?

рдкреНрд░реЙрдорд┐рд╕/рдП+ рд╕реНрдкреЗрдХ рдИрдПрд╕6 рд╡рд╛рджреЛрдВ рдХреА рдХрд▓реНрдкрдирд╛ рд╕реЗ рдмрд╣реБрдд рдЕрд▓рдЧ рд╣реИ, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ рдкрд┐рдЫрд▓реА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рд╡рд╛рджреЛрдВ рдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рд╕реЗ рдЕрд▓рдЧ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЕрд╕рдВрдЦреНрдп рд╡рд╛рджреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ ES6 рдореЗрдВ рд╕рдореЗрдХрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдХрднреА рднреА рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЦреБрд▓реЗ рд╕реНрд░реЛрдд рдХреА рд╕реБрдВрджрд░рддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдХреБрдЫ рд▓реЛрдЧ рдЬреЛ рд╡рд╛рджреЗ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ рд╡реЗ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реБрд╡рд┐рдзрд╛рдПрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╡рд╛рджреЗ рд▓рд┐рдЦреЗрдВрдЧреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпред

рд╡рд░реНрддрдорд╛рди рдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВ рд╣реИ, рдореИрдВ рдЬреЛ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ рд╡рд╣ mongoose.set('Promise', require('bluebird')); рдпрд╛ рдРрд╕рд╛ рдХреБрдЫ рдХрд╣рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдПрдХ рдСрдкреНрдЯ-рдЗрди рд╣реЛрдЧрд╛ рдФрд░ mpromise рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реЛрдЧрд╛ред

рдУрд╣ рдареАрдХ рд╣реИ, рдЙрд╕ рдЧрд▓рддреА рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИред
рдореИрдВрдиреЗ рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди, рдФрд░ рдЕрдиреНрдп рд╡рд╛рджреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реА рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕ рддрд░рд╣ рдХреБрдЫ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ:

mongoose.set('Promise', Promise);

mongoose.set('Promise', require('bluebird'));

mongoose.set('Promise', require('q').defer());

mongoose.set('Promise', require('when').defer());

// and so on...

рддреЛ рдореВрд▓ рд░реВрдк рд╕реЗ, рдЖрдкрдХреЛ рдореЛрдВрдЧреЛрд╕ рдХреЛ рдкрд╕рдВрдж рд╡рд╕реНрддреБ рдХреЗ рдЕрдкрдиреЗ рд╡рд╛рджреЗ рдХрд╛ рдЦреБрд▓рд╛рд╕рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕рдореЗрдВ resolve рдФрд░ reject рд╡рд┐рдзрд┐рдпрд╛рдВ рд╣реИрдВред

рдХреНрдпрд╛ рдЖрдкрдХреЗ рдорди рдореЗрдВ рдпрд╣реА рд╣реЛрдЧрд╛? рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рдореИрдВ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдкрд░ рдХрд╛рдо рдХрд░реВрдВрдЧрд╛ред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:
mongoose.set('Promise', Promise); рд▓рд┐рдЦрдирд╛ рдмреЗрд╣рдж рдореВрд░реНрдЦрддрд╛рдкреВрд░реНрдг рд▓рдЧрддрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ ES6 рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЖрдкрдХреА рдкрд╕рдВрдж рдХреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рд╕рд╛рде (рдФрд░ рдЬрдм рднреА ES6 рд╡рд╛рджреЗ рдЙрдкрд▓рдмреНрдз рди рд╣реЛрдВ рддреЛ рд╕рдордЭреМрддрд╛ рдХрд░реЗрдВ)ред

рдЬрд╝рд░реВрд░, рдореИрдВ рдЖрдкрдХреА рдорджрдж рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░реВрдБрдЧрд╛ред рдореБрд╢реНрдХрд┐рд▓ рдмрд┐рдЯ рд╣реЛрдЧрд╛ 1) рдЗрд╕реЗ рд╣реБрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП - vkarpov15/рдХрд░реАрдо # 2 рджреЗрдЦреЗрдВ, рдФрд░ 2) рдЗрд╕реЗ mpromise рдХреЗ рд╕рд╛рде рдкреАрдЫреЗ рдХреА рдУрд░ рд╕рдВрдЧрдд рдмрдирд╛рдирд╛ред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреБрди: рдХреНрдпреВ, рд╣рдо require('q').Promise рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХреНрдпреВ рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╣реИ рдЬреЛ ES6 рдХрд▓реНрдкрдирд╛ рдХреЗ рд╕рдмрд╕реЗ рдХрд░реАрдм рд╣реИ

рдЖрдкрдХреЗ рдЗрдирдкреБрдЯ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред рдХреНрдпрд╛ рдЖрдк рдПрдХ рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзреА рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдпрд╛ рдЪрд▓ рд░рд╣реЗ рдкреАрдЖрд░ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ?

рдкреВрд░рд╛ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдкрд╛рд╕ рд╣рдореЗрд╢рд╛ рдХреБрдЫ рд╕реБрдЭрд╛рд╡ рд╣реЛрдВрдЧреЗред рдЕрдЧрд░ рдЖрдк рдлрдВрд╕ рдЧрдП рд╣реИрдВ рддреЛ рдореБрдЭреЗ рдмрддрд╛рдПрдВ

рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП +1ред рдореИрдВ рдмреНрд▓реВрдмрд░реНрдб рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛

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

@benjamingr 100% рдЕрд╕рд╣рдорддред рдЕрдм iojs рдФрд░ NodeJs рдХреЗ Node 3.0 рдореЗрдВ рд╡рд┐рд▓рдп рдХреЗ рд╕рд╛рде, ES6 рдкреНрд░реЙрдорд┐рд╕ рдФрд░ рдЬреЗрдирд░реЗрдЯрд░ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╣реЛрдЧрд╛ред

рд╕рдорд░реНрдерди рдЫреЛрдбрд╝рдирд╛ рдкреАрдЫреЗ рдХреА рдУрд░ рдПрдХ рдмрд╣реБрдд рдмрдбрд╝рд╛ рдХрджрдо рд╣реЛрдЧрд╛ред

рдпрд╛рдиреА, Promise.promisifyAll(require("mongoose")) Mongoose рдХреЗ рд▓рд┐рдП рдПрдХ рддреЗрдЬрд╝ (рдХрд┐рд╕реА рднреА рд╕рдВрднрд╛рд╡рд┐рдд рдореИрдиреНрдпреБрдЕрд▓ рдкреНрд░рдпрд╛рд╕ рд╕реЗ рддреЗрдЬрд╝) рд░реИрдкрд░ рдмрдирд╛рддрд╛ рд╣реИ рдЬреЛ рдорд╛рдирдХреЛрдВ рдХреА рд╢рд┐рдХрд╛рдпрдд рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рдХрд┐рдП рдмрд┐рдирд╛ рд╕рднреА API рдХреЛ рдШреЗрд░ рд▓реЗрддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЖрдк рдирд┐рд░реНрдпрд╛рдд рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ Promise.promisifyAll рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдмреНрд▓реВрдмрд░реНрдб рд╡рд╛рджреЗ рдФрд░ рджреЛрд╣рд░реЗ рд╡рд╛рджреЗ рд╡рд┐рдзрд┐ (save - saveAsync) рдХреЛ рдореБрдлреНрдд рдореЗрдВ рдЙрдЬрд╛рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдХреЛрдИ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрд╛рдо рдХрд┐рдП рдмрд┐рдирд╛ рдмреНрд▓реВрдмрд░реНрдб рд╡рд╛рджрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдкрд░реНрджрд╛рдлрд╛рд╢ рдХрд░рддреЗ рд╣реИрдВред

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

@albertorestifo рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдЫреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ред рдореИрдВ рдЗрд╕ рдмрд╛рдд рд╕реЗ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╡рд╛рдХрд┐рдл рд╣реВрдВ рдХрд┐ рд╡рд╛рджреЗ рдХреНрдпрд╛ рд╣реИрдВ (рд╕реНрдЯреИрдХ рдУрд╡рд░рдлреНрд▓реЛ рдореЗрдВ 1500 рд╕реЗ рдЕрдзрд┐рдХ рдЕрдВрдХ рдФрд░ 500 рдЙрддреНрддрд░: рдкреА) рдФрд░ рдореИрдВ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЗ рд▓рд┐рдП рднреА рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реВрдВ рдХрд┐ рд╡реЗ io.js рдореЗрдВ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ (рдЬреИрд╕реЗ https://github.com/ рдиреЛрдбрдЬ/io.js/рдореБрджреНрджреЛрдВ/256)ред

рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЛ рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИ рдХрд┐ рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдЪреВрдВрдХрд┐ @ vkarpov15 рд╡рд╛рджреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЙрд╕реЗ рдЕрдкрдиреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдЙрдирдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП _рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рд╕реЗ рд╡реИрд╕реЗ рднреА рд╡рд╛рджреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рдХреЛрдИ рд▓рд╛рдн рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдЖрдк рдиреЗрд╡рд▓реЗ рдХреЗ рд╕рд╛рде рд╡рд╛рджреЛрдВ рдХрд╛ рдЖрд╕рд╛рдиреА рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рднрд▓реЗ рд╣реА рд╡рд╣ рдЙрдиреНрд╣реЗрдВ рдкреНрд░рджрд╛рди рди рдХрд░реЗ - рдиреЗрд╡рд▓рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕рдорд░реНрдерди рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╣реИ, рд╕рдВрднрд╡рддрдГ рдзреАрдорд╛, рдФрд░ рдЕрдзрд┐рдХ рддреНрд░реБрдЯрд┐ рдкреНрд░рд╡рдгред @ vkarpov15 рдХреЙрд▓рдмреИрдХ рдПрдкреАрдЖрдИ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╡рд╛рджрд╛ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡реИрд╕реЗ рднреА рдПрдХ рдЖрд╕рд╛рди рдПрдХ рд▓рд╛рдЗрдирд░ рдХреЗ рд╕рд╛рде рд╡рд╛рджреЗ рдХреЗ рд╕рд╛рде рдиреЗрд╡рд▓рд╛ рдХреЛ рд▓рдкреЗрдЯ рд╕рдХрддреЗ рд╣реИрдВред

@benjamingr рдЬреЛ рдорд╛рди рд░рд╣рд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рдмрд╛рд╣рд░реА рдкреНрд░реЙрдорд┐рд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдореИрдВ рд╡рд┐рдирд┐рд░реНрджреЗрд╢реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╕реЗ рдЪрд┐рдкрдХ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдЖрдк рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЬрд╛рдирддреЗ рд╣реИрдВ, рдЗрд╕рдореЗрдВ рдХреЛрдИ рдЖрд╡рд░рдг рдирд╣реАрдВ рд╣реИред

рдореИрдВ рддреБрдореНрд╣рд╛рд░реА рдмрд╛рдд рджреЗрдЦрддрд╛ рд╣реВрдБред рджреЛрдиреЛрдВ рдХрд╛ рд╕рд╛рде рджреЗрдирд╛ рдмрд╣реБрдд рдмрдбрд╝реА рдЧрдбрд╝рдмрдбрд╝реА рдкреИрджрд╛ рдХрд░рддрд╛ рд╣реИред рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдХреЙрд▓рдмреИрдХ рд╕реЗ рдШреГрдгрд╛ рдХрд░рддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЙрдиреНрд╣реЗрдВ рдЫреЛрдбрд╝ рджреВрдВрдЧрд╛ред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╣реЛрдВ, рдПрдХ рдЬрдирд░реЗрдЯрд░ рдФрд░ рд╡рд╛рджреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реЛ, рджреВрд╕рд░рд╛ рдХреЙрд▓рдмреИрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реЛред рджреЛрдиреЛрдВ рдПрдХ рд╣реА рд╕рдВрд░рдЪрдирд╛ рдФрд░ рдПрдкреАрдЖрдИ рдХреЛ рдпрдерд╛рд╕рдВрднрд╡ рдХрд░реАрдм рдмрдирд╛рдП рд░рдЦреЗрдВрдЧреЗред

@benjamingr рдЬреЛ рдорд╛рди рд░рд╣рд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рдмрд╛рд╣рд░реА рдкреНрд░реЙрдорд┐рд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдореИрдВ рд╡рд┐рдирд┐рд░реНрджреЗрд╢реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╕реЗ рдЪрд┐рдкрдХ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдЖрдк рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЬрд╛рдирддреЗ рд╣реИрдВ, рдЗрд╕рдореЗрдВ рдХреЛрдИ рдЖрд╡рд░рдг рдирд╣реАрдВ рд╣реИред

рдпрджрд┐ рдЖрдк рдзреАрдореА, рдХрдард┐рди рдбрд┐рдмрдЧ рдФрд░ рдХрдо рд╕реБрд╡рд┐рдзрд╛ рд╕рдВрдкрдиреНрди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪреБрдирддреЗ рд╣реИрдВ рдЬреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЖрдкрдХреА рдкрд╕рдВрдж рд╣реИ: рдкреА рд▓реЗрдХрд┐рди рдпрд╣ рд░реИрдкрд░ рд╕реЗ рдХреИрд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ? рдореВрд▓ рд╡рд╛рджреЛрдВ* рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмреНрд▓реВрдмрд░реНрдб рдХреЗ promisifyAll рдХреЗ рд╕рдорд╛рди рдПрдХ рд░реИрдкрд░ рд▓рд┐рдЦрдирд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЖрд╕рд╛рди рд╣реИред

рдпрджрд┐ рдЖрдк рдПрдХ рдЕрд▓рдЧ рдкреИрдХреЗрдЬ рдХреЗ рд░реВрдк рдореЗрдВ Mongoose рдХрд╛ рд╡рд╛рджрд╛-рд╕рдХреНрд╖рдо рд╕рдВрд╕реНрдХрд░рдг рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдпрд╣ рдХреИрд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

  • рдЪрд░рдг 1, рдЕрдкрдирд╛ рдкрд╕рдВрджреАрджрд╛ рд╕рдВрдкрд╛рджрдХ рдпрд╛ рд╕рд┐рд░реНрдл рдПрдХ рд╕рдВрдкрд╛рджрдХ рдЦреЛрд▓реЗрдВ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЖрдк рдареАрдХ рд╣реИрдВред
  • рдЪрд░рдг 2, module.exports = require("bluebird").promisifyAll(require("mongoose")) . рдЯрд╛рдЗрдк рдХрд░реЗрдВ
  • рдЪрд░рдг 3, рдЙрдкрдпреБрдХреНрдд package.json рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ, npm . рдкрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░реЗрдВ
  • рдЪрд░рдг 4, рджрд╕рд┐рдпреЛрдВ рд╣рдЬрд╝рд╛рд░ рдбрд╛рдЙрдирд▓реЛрдбред

рдЕрдм, рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдХреНрдпрд╛ рд╕реЛрдЪ рд░рд╣реЗ рд╣реИрдВ "рдпрд╣ рдореВрд▓ рд╡рд╛рджреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ", рдареАрдХ рд╣реИ, рдЖрдк рдЕрднреА рднреА рд╡рд╛рджрд╛ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╕реЗ then рдФрд░ catch рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╣рд░ рд╡рд┐рдзрд┐ рдХреЛ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ all race рд╕реЗ Promise рдФрд░ рдПрдХ рд╣реА рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВ - рдпрд╛ рдЖрдк рдХреЗрд╡рд▓ рд▓реЛрдЧреЛрдВ рдХреЛ рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдореВрд▓ рд╡рд╛рджреЗ рдирд┐рд░реНрдпрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ - рд╡реЗ рдирд╣реАрдВ рдЬрд╛рди рдкрд╛рдПрдВрдЧреЗ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рджреЛ рд╡рд╛рджреЗ/рдП+ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИрдВ, рдореИрдВ рд╡рд╛рджрд╛ рдХрд░рддрд╛ рд╣реВрдВ ;)

(* рдЗрд╕реЗ рддреЗрдЬреА рд╕реЗ рд▓рд┐рдЦрдирд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрддрд░ рдореЗрдВ рдХрдард┐рди рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЕрднреА рд╡рд╛рджреЗ рдмрдирд╛рдиреЗ рдХрд╛ рдХреЛрдИ рддреЗрдЬрд╝ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ, рдпрд╣реА рд╡рдЬрд╣ рд╣реИ рдХрд┐ io.js рдЕрдВрддрддрдГ рдПрдХ рдкреНрд░реЙрдорд┐рд╕рд┐рдлрд╝ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдирд┐рд░реНрдпрд╛рдд рдХрд░реЗрдЧрд╛ - рдЬреЛ рдХрд┐ рдПрдХ рд╡рд╛рджрд╛ рдирд┐рд░реНрдорд╛рддрд╛ рд▓реЗрдХрд░ рдЖрдк рдЗрд╕реЗ рдордЬрдмреВрд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рд╡реИрд╕реЗ рднреА рдзреАрдорд╛ рд╣реЛ)ред

рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореИрдВ рд╡рд╛рджреЛрдВ рдХреЛ рдШрд░ рдореЗрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐, рдпрд╣ рдкрд╕рдВрдж рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗрд╡рд▓реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЗрд╕рдХреЗ рд▓рд┐рдП рдареЛрд╕ рдкрд░реАрдХреНрд╖рдг рдХрд╡рд░реЗрдЬ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрдВрдЧрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ "рдпрд╣ рдХреИрд╕реЗ рд╣реИ рдЖрдк рдиреЗрд╡рд▓рд╛ рдХреЗ рд╕рд╛рде рд╡рд╛рджрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдПрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ"ред рдЬрдм рдЖрдк рдЪреАрдЬреЛрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдирдХрд╛рд░рд╛рддреНрдордХ рдкрдХреНрд╖ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╣рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ "рдареАрдХ рд╣реИ рдиреЗрд╡рд▓рд╛-рд╡рд╛рджреЛрдВ рдХрд╛ рдпрд╣ рд╕рдВрд╕реНрдХрд░рдг рдХреЗрд╡рд▓ рдиреЗрд╡рд▓рд╛ 3.8 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдиреЗрд╡рд▓рд╛> = 4.1 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ" рдФрд░ рдиреЗрд╡рд▓реЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реНрдпрд╛рдкрдХ рд╡рд╛рджреЗ рдЖрд╡рд░рдг рдХреЛ рддреЛрдбрд╝рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдореБрд╢реНрдХрд┐рд▓ рд╣реИ .

рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореИрдВ рд╡рд╛рджреЛрдВ рдХреЛ рдШрд░ рдореЗрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐, рдпрд╣ рдкрд╕рдВрдж рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗрд╡рд▓реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЗрд╕рдХреЗ рд▓рд┐рдП рдареЛрд╕ рдкрд░реАрдХреНрд╖рдг рдХрд╡рд░реЗрдЬ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ,

рдЖрдк рдЗрд╕рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдХрд╡рд░реЗрдЬ рдХреНрдпреЛрдВ рдЪрд╛рд╣рддреЗ/рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рдЖрдкрдХреЗ рдХреЛрдб рдореЗрдВ рд╕реНрд╡рдпрдВ рдХреЗ рд╡рд╛рджреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ - рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд░реАрдХреНрд╖рдг рд╣реИрдВ - рдпрд╣ http рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдЬреИрд╕рд╛ рд╣реИ рдЬрдм рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдФрд░ рдиреЗрд╡рд▓реЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реНрдпрд╛рдкрдХ рд╡рд╛рджреЛрдВ рдХреЗ рдЖрд╡рд░рдг рдХреЛ рддреЛрдбрд╝рдиреЗ рд╕реЗ рдмрдЪрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред

рдмреНрд▓реВрдмрд░реНрдб рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреБрдЫ рд╕рд░рд▓ рдХрд░рддрд╛ рд╣реИ - рдпрд╣ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдвреВрдВрдврддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ Async рдкреНрд░рддреНрдпрдп рдХреЗ рд╕рд╛рде рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ - рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд░рд▓ рд╣реИ рдФрд░ рдпрд╣ рдЕрднреНрдпрд╛рд╕ рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ - рдпрд╣ рдореЛрдВрдЧреЛрдЬрд╝ рд╕рдореЗрдд рдЕрдзрд┐рдХрд╛рдВрд╢ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд▓рд╛рдЗрдирд░ рд╣реИ рдФрд░ рдпрд╣ рдЯреВрдЯ рдирд╣реАрдВ рдЧрдпрд╛ рдкрд┐рдЫрд▓реЗ рдПрдХ рд╕рд╛рд▓ рдореЗрдВ рдореЗрд░реЗ рд▓рд┐рдП рднреА рдПрдХ рдмрд╛рд░ред

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

"рдареАрдХ рд╣реИ рдиреЗрд╡рд▓рд╛-рд╡рд╛рджреЛрдВ рдХрд╛ рдпрд╣ рд╕рдВрд╕реНрдХрд░рдг рдХреЗрд╡рд▓ рдиреЗрд╡рд▓рд╛ 3.8 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдиреЗрд╡рд▓рд╛> = 4.1 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ" рдФрд░ рдиреЗрд╡рд▓реЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реНрдпрд╛рдкрдХ рд╡рд╛рджреЗ рдЖрд╡рд░рдг рдХреЛ рддреЛрдбрд╝рдиреЗ рд╕реЗ рдмрдЪрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред

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

1) рдореИрдВ рдЪреАрдЬреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

2) рдореБрдЭреЗ рдЖрд▓рд╕реА рд╣реЛрдирд╛ рдФрд░ рдЗрд╕рд╕реЗ рдмрдЪрдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛, рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЕрдиреНрдп рд╡рд╛рджреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рд╡рд╛рджрд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ "рдПрдХреНрд╕рдкреНрд░реЛрдорд╛рдЗрдЬ рдлреАрдЪрд░ рд╡рд╛рдИ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВ" рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдиреЗрд╡рд▓рд╛ рдлреАрдЪрд░ рдЕрдиреБрд░реЛрдз рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдорд╛рд░рд╛ рдмреНрд▓реВрдмрд░реНрдб рдХреЗ рд╡рд╛рджреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдХреЛрдИ рдЗрд░рд╛рджрд╛ рдирд╣реАрдВ рд╣реИ, рдмрд╕ рдиреЗрд╡рд▓реЗ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рдПрдХ рд╡рд╛рджрд╛ рд╡рд╛рдкрд╕ рдХрд░ рджреЗрдВред

3) рд╡рд╛рджрд╛ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░ рд░рд╣реЗ рд╣реИрдВ :)

1) рдореИрдВ рдЪреАрдЬреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рд╕реЗ рдЖрдкрдХрд╛ рдХреНрдпрд╛ рдЕрднрд┐рдкреНрд░рд╛рдп рд╣реИ? рдХреНрдпрд╛ рдЖрдк рдореБрдЭреЗ рдХреЙрд▓рдмреИрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рджреГрд╢реНрдп рджрд┐рдЦрд╛ рд╕рдХрддреЗ рд╣реИрдВ?

2) рдореБрдЭреЗ рдЖрд▓рд╕реА рд╣реЛрдирд╛ рдФрд░ рдЗрд╕рд╕реЗ рдмрдЪрдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛, рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЕрдиреНрдп рд╡рд╛рджреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рд╡рд╛рджрд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ "рдПрдХреНрд╕рдкреНрд░реЛрдорд╛рдЗрдЬ рдлреАрдЪрд░ рд╡рд╛рдИ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВ" рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдиреЗрд╡рд▓рд╛ рдлреАрдЪрд░ рдЕрдиреБрд░реЛрдз рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдорд╛рд░рд╛ рдмреНрд▓реВрдмрд░реНрдб рдХреЗ рд╡рд╛рджреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдХреЛрдИ рдЗрд░рд╛рджрд╛ рдирд╣реАрдВ рд╣реИ, рдмрд╕ рдиреЗрд╡рд▓реЗ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рдПрдХ рд╡рд╛рджрд╛ рд╡рд╛рдкрд╕ рдХрд░ рджреЗрдВред

рдЖрдкрдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИ, рдЖрдк рдЗрд╕реЗ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ - рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдзреАрдорд╛ рд╣реЛрдЧрд╛ред

рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рди рдХрд░рдирд╛ рднреА рдЖрд▓рд╕реНрдп рдирд╣реАрдВ рд╣реИред рдХреНрдпрд╛ NodeJS рдХреЛрд░ рдореЗрдВ рдПрдХреНрд╕рдкреНрд░реЗрд╕ рди рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд▓рд╕реА рд╣реИрдВ? рдХреНрдпрд╛ TC39 рдХреЛрд░ рдореЗрдВ рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рди рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд▓рд╕реА рд╣реИ? рдПрдХ рд╕рдореНрдореЗрд▓рди (рдХреЙрд▓рдмреИрдХ) рд╕реЗ рдЪрд┐рдкрдХреЗ рд╣реБрдП рдЖрдк рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЬреЛ рднреА рд╕рдорд╡рд░реНрддреА рдЖрджрд┐рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЙрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рджреЗ рд░рд╣реЗ рд╣реИрдВред

3) рд╡рд╛рджрд╛ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░ рд░рд╣реЗ рд╣реИрдВ :)

рдЦреИрд░, рдмреНрд▓реВрдмрд░реНрдб рдХрд╛ рд╡рд╛рджрд╛, рдпрд╛ рдХреНрдпреВ рдпрд╛ рдХрдм - рд╡реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рднрд┐рдиреНрди рд╣реЛрддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рд╡реЗ рд╕рднреА рдПрдХ рд╣реА рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ - рдЗрд╕рд▓рд┐рдП рдмрд╕ рдЕрдкрдиреА рдкрд╕рдВрдж рдХрд╛ рдПрдХ рдЪреБрдиреЗрдВред рдореИрдВ рдмрд╕ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдЯреВрдЯреЗрдЧрд╛ред

рдпрд╣рд╛рдБ рдЗрд╕ рдЪрд░реНрдЪрд╛ рдореЗрдВ рдПрдХ рдмрд╛рдд рдпрд╛рдж рдЖ рд░рд╣реА рд╣реИ:

рдпрджрд┐ рдиреЗрд╡рд▓рд╛ рдПрдХ рдорд╛рдирдХ рд╡рд╛рджрд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ (рдорд╛рдирдХ рдЕрд░реНрде рдХреЗ рдЕрдиреБрд╕рд╛рд░ ES6 рдореВрд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди), рддреЛ рдХреНрдпрд╛ рдпрд╣ рдХрд┐рд╕реА ES6-рд╕рдВрдЧрдд рд╡рд╛рджрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП? рдореИрдВ Promise.all([model.query().exec(), ...]) рдареАрдХ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рд╕рд╛рде рд╣реА рдмреНрд▓реВрдмрд░реНрдб, рдХреНрдпреВ, рдЬрдм рд╕рдордХрдХреНрд╖ рд╣реЛред

рддреЛ, рдХреЙрд▓рдмреИрдХ рдФрд░ рдорд╛рдирдХ рд╡рд╛рджреЗ рдХреНрдпреЛрдВ рди рд▓реМрдЯрд╛рдПрдВ (рдЬреИрд╕реЗ рдпрд╣ рдЕрднреА рдХрд░ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдордкреНрд░реЛрдорд┐рд╕ рд╕реЗ "рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдирд╛") рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЕрдкрдиреА рдкрд╕рдВрджреАрджрд╛ рд╡рд╛рджрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рджреЗрдВ? рдпрд╛ рдореБрдЭрд╕реЗ рдпрд╣рд╛рдВ рдХреБрдЫ рдЫреВрдЯ рд░рд╣рд╛ рд╣реИ?

@albertorestifo рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ, рдореВрд▓ рд╡рд╛рджреЗ рдЗрд╕ рд╕рдордп рдзреАрдореЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдореЗрдВ рд╕рдордп рд▓рдЧреЗрдЧрд╛, рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рд▓реИрдВрдб рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдирддрд╛ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ - рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рд╡рд╣ред

@benjamingr рдЖрдк рдХреБрдЫ рдЕрдЪреНрдЫреЗ рдЕрдВрдХ рдмрдирд╛рддреЗ рд╣реИрдВред рдиреЗрд╡рд▓рд╛ рдХреЗ рд╡рд╛рджреЛрдВ рдХрд╛ рдкреНрд░рд╛рдердорд┐рдХ рдмрд┐рдВрджреБ рдЖрдкрдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдмрд┐рдирд╛ рдиреЗрд╡рд▓рд╛ async рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд╕рд╛рде yield рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдмрдирд╛рдирд╛ рд╣реИ, рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд╣рдо рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдХреЗ рд▓рд┐рдП рд╡рд╛рджреЗ рд░рдЦ рд░рд╣реЗ рд╣реИрдВред рдЖрдИрдПрдордУ рдРрд╕рд╛ рдХреБрдЫ рд╣реИ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рд╡рд╛рд▓реЗ рдиреЗрд╡рд▓рд╛ рдХреЛрд░ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдХреНрдпрд╛ рдкреНрд░рд╢реНрди рдпрд╛ рд╡рд╛рджрд╛ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХрдм рд╣реИ?

рдХреНрдпрд╛ рдкреНрд░рд╢реНрди рдпрд╛ рд╡рд╛рджрд╛ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХрдм рд╣реИ?

рд╣рд╛рдВ, рд▓рдЧрднрдЧ рд╣рд░ рд╡реНрдпрд╛рдкрдХ рд╡рд╛рджрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

рдпрд╣рд╛рдБ рдХрдм рд╣реИ: https://github.com/cujojs/when/blob/master/docs/api.md#nodeliftall
рдпрд╣рд╛рдБ рдкреНрд░рд╢реНрди рд╣реИ: https://github.com/kriskowal/q/wiki/API-Reference#qnfbindnodefunc -args

рдореВрд▓ рд╡рд╛рджреЛрдВ рдХреЗ рдкрд╛рд╕ рдпрд╣ рдЕрднреА рддрдХ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬрд┐рд╕ рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ - рдПрдХ рдмрд╛рд░ рд╡рд╛рджреЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддреЗрдЬрд╝ рд░рд╛рд╕реНрддрд╛ (рдпрд╛рдиреА - рд╡рд╛рджрд╛ рдирд┐рд░реНрдорд╛рддрд╛ рдирд╣реАрдВ) рдореМрдЬреВрдж рд╣реИ, рддреЛ рдиреЛрдбрдЬреЗрдПрд╕ рдореВрд▓ рд╡рд╛рджреЛрдВ рдХреЗ рд▓рд┐рдП рдореВрд▓ рд░реВрдк рд╕реЗ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдЧрд╛ (рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХрд░ рд╕рдХрддрд╛ рд╣реИ) рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рд▓реИрдВрдб рдореЗрдВ _fast_ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП)ред

рдиреЗрд╡рд▓реЗ рдХреЗ рд╡рд╛рджреЛрдВ рдХрд╛ рдкреНрд░рд╛рдердорд┐рдХ рдмрд┐рдВрджреБ рдЖрдкрдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдмрд┐рдирд╛ рдиреЗрд╡рд▓рд╛ рдПрд╕рд┐рдВрдХ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд╕рд╛рде рдЙрдкрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдмрдирд╛рдирд╛ рд╣реИ

рд╡реИрд╕реЗ рднреА рд╡рд╛рджреЛрдВ рдХреЗ рд╕рд╛рде рд╕рд╛рд░реНрдердХ рддрд░реАрдХреЗ рд╕реЗ yield рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк 9 рдПрд▓рдУрд╕реА рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЬрдирд░реЗрдЯрд░ рдХреЛ рдПрд╕рд┐рдВрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдкрдВрдк рдХрд░рддрд╛ рд╣реИ рддреЛ рдЖрдк рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╡рд╛рджрд╛ рд▓рд┐рдЦ тАЛтАЛрд╕рдХрддреЗ рд╣реИрдВ - рдФрд░ рдпрджрд┐ рдЖрдк рдЕрдзрд┐рдХрддрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рддрд░рд╣ рд╣реИрдВ рддреЛ рдЖрдк рдЗрд╕рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдореЛрдВрдЧреЛрдЬрд╝ рдореЗрдВ рд╡рд╛рджреЛрдВ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛/рдЖрд╡рд╢реНрдпрдХрддрд╛ рджреЗрдЦрддрд╛ рд╣реВрдВ, рд╡реЗ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдХрд╛ рд░рд╛рд╕реНрддрд╛ рд╣реИрдВ рдФрд░ рднрд╛рд╖рд╛ рдЕрдм рдХреИрд╕реЗ рд╕рдореЗрдХрди рдХрд░рддреА рд╣реИ рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╡рд┐рдзрд┐-рджрд░-рд╡рд┐рдзрд┐ рдХрд░рдирд╛ рджрд░реНрджрдирд╛рдХ рд╣реЛрдЧрд╛ред рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдореЗрдВ "рд╡рд╛рджреЛрдВ рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛" рдпрд╛ "рдЬрдирд░реЗрдЯрд░ рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛" рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдпрд╣ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рдлрд╛рдпрджреЗрдордВрдж рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА рдЗрд╕реЗ рд╡рд┐рдзрд┐-рджрд░-рд╡рд┐рдзрд┐ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ, рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдЖрдВрддрд░рд┐рдХ рд╡рд╛рджрд╛ рдЖрд╡рд░рдг рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ, рд╣рдо 5.0 рддрдХ рдореВрд▓ рд╕реЗ рд╡рд╛рджреЛрдВ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╣рдЯрд╛ рдирд╣реАрдВ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВ рдЗрд╕реЗ рдкрджрд╛рд╡рдирдд рдХрд░рдиреЗ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рдЙрддреНрддрд░рджрд╛рдпреА рд╣реВрдВ, @benjamingr рдХреБрдЫ рдЕрдЪреНрдЫреЗ рддрд░реНрдХ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рди рдкрд░ рдореБрдЭреЗ рдмрд╛рд░реАрдХреА рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд▓рд╛ рдХрджрдо рд╡реИрд╕реЗ рднреА #2688 рд╣реЛрдЧрд╛ред

рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЖрдкрдХреЗ рдкрд╛рд╕ Mongoose рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХ рдЕрдиреБрднрд╡ рд╣реИ рдФрд░ рдЗрд╕рд╕реЗ рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реИрдВ - рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЙрд╕ рд╡рд┐рдХрд▓реНрдк рдХреЛ рд╕рдордЭрддрд╛ рд╣реВрдВред рдореБрдЭреЗ рд╕реБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд-рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред

рдореИрдВрдиреЗ "рдЗрд╕рдХрд╛" рдЯрд╛рдЗрдк рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдЖрдИрдлреЛрди рдХреЛ рдРрд╕рд╛ рд▓рдЧрд╛ рдХрд┐ рдЗрд╕реЗ "рдЗрдЯреНрд╕" рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдд: рд╕реБрдзрд╛рд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЧрд┐рдЯрд╣рдм рдиреЗ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рдирд╣реАрдВ рд╣реИред рдбрдмрд▓-рдЯрд┐рдкреНрдкрдгреА-рд╕реНрдкреИрдо рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИ :)

рдпрджрд┐ рдЖрдк рдЕрдкрдиреА рдЯрд┐рдкреНрдкрдгреА рдХреЗ рдКрдкрд░ рджрд╛рдИрдВ рдУрд░ рдкреЗрдВрд╕рд┐рд▓ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЖрдк рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдореИрдВ рд╣рдореЗрд╢рд╛ рдПрдХ рдЕрдЪреНрдЫреА рд╣рд╛рд░реНрджрд┐рдХ рдмрд╣рд╕ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реВрдВ, рдЦрд╛рд╕рдХрд░ рдПрдХ рдЬреЛ рдореБрдЭреЗ рдХреБрдЫ рдирдпрд╛ рд╕рд┐рдЦрд╛рддреА рд╣реИ: рдмреАрдпрд░: рдореИрдВ рдЖрдкрдХреЛ рдмрд╛рдж рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд┐рдВрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ :)

рднрд╡рд┐рд╖реНрдп рджреЗрд╢реА рд╡рд╛рджреЛрдВ рдХрд╛ рд╣реИ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИред рдиреЗрд╡рд▓рд╛ рдореЛрдВрдЧреЛ рдСрдкреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрджреНрдпреЛрдЧ рдорд╛рдирдХ рд╣реИ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рд╡рд╛рджреЛрдВ рдкрд░ рднреА рднрд░реЛрд╕рд╛ рдХрд░рдирд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдорд╛рдиреНрдп рд╣реИред

рдорд╛рдирдХ рд╡рд╛рджреЗ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдкрд░рд┐рдкрдХреНрд╡ рд╣реЛрдВрдЧреЗ рдФрд░ рдХрд┐рд╕реА рднреА рдврд╛рдВрдЪреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╡реНрдпрд╛рдкрдХ рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдирдореНрд░ +1ред

@iliakan рд╢рд╛рдпрдж рднрд╡рд┐рд╖реНрдп рдореЗрдВред рдореБрдЭреЗ рдЙрдореНрдореАрдж рдирд╣реАрдВ рдереА рдХрд┐ рдореВрд▓ рд╡рд╛рджреЗ рдЬрд▓реНрдж рд╕реЗ рдЬрд▓реНрдж 2016 рдХреЗ рдордзреНрдп рддрдХ "рдорд╛рдирдХ" рдмрди рдЬрд╛рдПрдВрдЧреЗ, рд╡рд┐рднрд┐рдиреНрди рдЦрдВрдбрд┐рдд рд╡рд╛рджреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдмрд╣реБрдд рдЧрд╣рд░рд╛рдИ рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реБрдП рд╣реИрдВ рдФрд░ рдмрд╣реБрдд рд╕реЗ рд╕реВрдХреНрд╖реНрдо рд╡рд┐рдЪрд┐рддреНрд░рддрд╛рдПрдВ рд╣реИрдВред рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ, рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдкреАрдЫреЗ рдХреА рдУрд░ рддреЛрдбрд╝рдиреЗ рд╡рд╛рд▓реЗ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдмрд┐рдирд╛ рдиреЗрд╡рд▓рд╛ 'рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдореВрд▓' рдкрд░ рд╕реНрд╡рд┐рдЪ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

@ vkarpov15 рдпрдХреАрди рд╣реИ рдХрд┐ рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдБред

рдЗрд╕ рдмреАрдЪ рдХреНрдпрд╛ рдлрд╛рдпрджреЗрдордВрдж рд╣реЛ рд╕рдХрддрд╛ рд╣реИ - рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкреГрд╖реНрда рдЬреЛ рдПрдордкреНрд░реЛрдорд┐рд╕ рдФрд░ рджреЗрд╢реА рд╡рд╛рджреЛрдВ рдХреЗ рдмреАрдЪ рдкреНрд░рдореБрдЦ рдЕрд╕рдВрдЧрддрд┐рдпреЛрдВ рдХреЛ рд░реЗрдЦрд╛рдВрдХрд┐рдд рдХрд░рддрд╛ рд╣реИред рдХрдо рд╕реЗ рдХрдо рдЪреАрдЬреЗрдВ рдЬреЛ рдЖрдкрдХреЛ mpromise рдХреЗ рд╕рд╛рде рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП;)

рдХреНрдпрд╛ рдореБрдЭреЗ рдпрд╣ рд╕рд╣реА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрднреА рдХреЛрдИ catch рдирд╣реАрдВ рд╣реИ, рдФрд░ рдпрд╣ рд╕рднреА рд╕реАрдорд╛рдПрдВ рд╣реИрдВ?

рдирд╣реАрдВ рдкрддрд╛, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ ES6 API рдореЗрдВ рдирд╣реАрдВ рдЦреЛрджрд╛ рд╣реИред mpromise рд╡рд╛рджреЗ/A+ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХреБрдЫ рдирд╣реАрдВ, рдЬрд┐рд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдирд╣реАрдВ .catch(), рдХреЛрдИ рд▓рдВрдмрд╛ рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕ рдирд╣реАрдВ, рдЖрджрд┐ред рдореВрд▓ рд░реВрдк рд╕реЗ, рдХреБрдЫ рднреА рдЬреЛ .then() рдирд╣реАрдВ рд╣реИ рд╡рд╣ mpromise рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдмрд╛рд╣рд░ рд╣реИред

рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рдХреБрдЫ рдРрд╕рд╛ рдЬреЛ Promises/A+ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, ES6 рд╡рд╛рджреЛрдВ рдХреЛ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рднреА рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдЙрд▓реНрдЯрд╛ рд╕рдЪ рдирд╣реАрдВ рд╣реИред рд╡рд╛рджреЗ/рдП+ рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рд╡рд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдмреНрд▓реВрдмрд░реНрдб рд╡рд╛рджреЗ/рдП+ рдХрд╛ рдмрд┐рд▓реНрдХреБрд▓ рдкрд╛рд▓рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдореБрдЭреЗ рдЕрдиреНрдп рдЖрдо рд╡рд╛рджреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рд╡реЗ рдХрд▓реНрдкрдирд╛ рдХрд╛ рдкрд╛рд▓рди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЕрдиреВрдареЗ рддрд░реАрдХреЗред рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рдЗрд╕реЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдореБрд╢реНрдХрд┐рд▓ рдмрдирд╛рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИред

рдЖрдкрдХрд╛ рдорддрд▓рдм рд╣реИ, рдЕрдм рдмреНрд▓реВрдмрд░реНрдб рдФрд░ рджреЗрд╢реА рд╡рд╛рджреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рд╣рд╛рдБ require('mongoose').Promise = global.Promise рдиреЗрд╡рд▓реЗ рдХреЛ рдореВрд▓ рд╡рд╛рджреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд░реЗрдЧрд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕реА рднреА ES6 рдкреНрд░реЙрдорд┐рд╕ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдЕрднреА рд╣рдо рдХреЗрд╡рд▓ рджреЗрд╢реА, рдмреНрд▓реВрдмрд░реНрдб рдФрд░ Q рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╣реИрдВ

@vkarpov15 рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ! рдмрд╣реБрдд - рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж!

@vkarpov15 рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж! рдЕрдЪреНрдЫрд╛ рдХрд╛рдо!

рд╣рд╛рдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЪреНрдЫрд╛ рд╣реИ! :)

@vkarpov15 рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЪреНрдЫрд╛ рд╣реИ

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

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

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

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

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

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

p3x-robot picture p3x-robot  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ