<p>async.mapLimit рдПрдХ рд╡рд╛рджрд╛ рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ</p>

рдХреЛ рдирд┐рд░реНрдорд┐рдд 27 рдЕрдЧре░ 2019  ┬╖  14рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: caolan/async

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

рд╕рдорд╕реНрдпрд╛ рдХрд┐рд╕ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд╣реБрдИ (рдиреЛрдб рд╕рдВрд╕реНрдХрд░рдг/рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдВрд╕реНрдХрд░рдг)
рдиреЛрдб 12.9.1, рдПрдирдкреАрдПрдо 6.10.2, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдПрди/рдП

рддреБрдордиреЗ рдХреНрдпрд╛ рдХрд┐рдпрд╛?
рд╕реНрдЯреИрдХрдУрд╡рд░рдлрд╝реНрд▓реЛ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдПрдХ рдзрд╛рдЧрд╛ рд╣реИ
https://stackoverflow.com/questions/57622495/async-maplimit-with-promise/57659221#57659221

рдореВрд▓ рд░реВрдк рд╕реЗ, рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣ рдХреЛрдб рд╣реИ:

async = require('async');
let numPromise = async.mapLimit(['1','2','3','4','5'], 3, function(num, callback){
    setTimeout(function(){
        num = num * 2,
        console.log(num);
        callback(null, num);
    }, 
    2000);
})
numPromise
.then((result) => console.log("success:" + result))
.catch(() => console.log("no success"));

рдЖрдкрдиреЗ рдХреНрдпрд╛ рд╣реЛрдиреЗ рдХреА рдЙрдореНрдореАрдж рдХреА рдереА?
рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ, 'numPromise' рдореЗрдВ рдПрдХ рд╡рд╛рджрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдХрдВрд╕реЛрд▓ рдХреЛ '2,4,6,8,10' рдФрд░ ' рд╕рдлрд▓рддрд╛: 2 , 4,6,8,10' рд▓реЙрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП

рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рдгрд╛рдо рдХреНрдпрд╛ рдерд╛?
рдпрд╣ рдПрдХ рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХрддрд╛ рд╣реИ: рд▓реЗрдЦрди рддреНрд░реБрдЯрд┐: рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреА рд╕рдВрдкрддреНрддрд┐ 'рдлрд┐рд░' рдирд╣реАрдВ рдкрдврд╝ рд╕рдХрддрд╛ рд╣реИ

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

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

const async = require('async');
const delay = require('util').promisify(setTimeout);
const numPromise = async.mapLimit(['1','2','3','4','5'], 3, async num => delay(200).then(() => num*2))
// or const numPromise = async.mapLimit(['1','2','3','4','5'], 3, async num => {
//    await delay(200);
//    return num*2;
// })
numPromise.then(console.log)

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

const async = require('async');
const delay = require('util').promisify(setTimeout);
const numPromise = async.mapLimit(['1','2','3','4','5'], 3, async num => delay(200).then(() => num*2))
// or const numPromise = async.mapLimit(['1','2','3','4','5'], 3, async num => {
//    await delay(200);
//    return num*2;
// })
numPromise.then(console.log)

Thx рдмрд╣реБрдд, рдЙрдЪрд┐рдд рдЙрджрд╛рд╣рд░рдгред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдореБрдЭреЗ рджреЗрддрд╛ рд╣реИ "рд╕рд┐рдВрдЯреИрдХреНрд╕ рддреНрд░реБрдЯрд┐: рдкреНрд░рддреАрдХреНрд╖рд╛ рдХреЗрд╡рд▓ рдПрд╕рд┐рдВрдХ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдорд╛рдиреНрдп рд╣реИ" ('async.mapLimit' рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП)
рдореБрдЭреЗ рдХреБрдЫ рдФрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рд╣реИ?

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

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

const myAsyncFunction = async function(){
    //const numPromise = await async.mapLimit(['1','2','3','4','5'], 3, async num => delay(200).then(() => num*2))
    const numPromise = await async.mapLimit(['1','2','3','4','5'], 3, async num => {
        await delay(2000);
        console.log(num*2);
        return num*2;
     })
    //numPromise.then(console.log)
    return numPromise;
}
myAsyncFunction()
.then((result) => console.log(result));

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрднреА рддрдХ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдВ рдХрд┐ рдкрд╣рд▓реЗ рдХреА рдХреЛрд╢рд┐рд╢реЛрдВ рд╕реЗ рдХреНрдпрд╛ рдЕрд▓рдЧ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рдкрд░ рдХреБрдЫ рдФрд░ рдирд┐рд╖реНрдХрд░реНрд╖ рдХреЛ рдорд╛рдиреНрдп рдФрд░ рдЬреЛрдбрд╝ рджреЗрдЧрд╛ред
рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рдореЗрд░рд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдм рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╣рдЬ рдЬреНрдЮрд╛рди рдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИ, рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕ рддрд░рд╣ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ!
рдФрд░... рдореИрдВ рдЕрднреА рднреА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдордЭ рдирд╣реАрдВ рдкрд╛ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рд╣рдореЗрдВ рдЗрд╕рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рд╕рднреА рдПрд╕рд┐рдВрдХ/рдкреНрд░рддреАрдХреНрд╖рд╛ рдХреНрдпреЛрдВ рд▓рдкреЗрдЯрдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ, рдЬрдм async.mapLimit рдХреЛ рдХреЗрд╡рд▓ рдПрдХ рд╕рд╛рджрд╛ рд╡рд╛рджрд╛ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП ...

рдЙрдлрд╝ рдореИрдВ рдЕрдкрдиреЗ рдкрд┐рдЫрд▓реЗ рдХреЛрдб рдореЗрдВ рдПрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рднреВрд▓ рдЧрдпрд╛, рд╕рдВрдкрд╛рджрд┐рдд

рдареАрдХ рд╣реИ, рдЕрдм рдореИрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реВрдВ :-) рддреЛ рд╢рд╛рдпрдж рдореБрдЦреНрдп рдореБрджреНрджрд╛ рдпрд╣ рдерд╛ рдХрд┐ iteratee рдлрд╝рдВрдХреНрд╢рди рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдирд╣реАрдВ рдерд╛?
рд╡реИрд╕реЗ рднреА, рдпрд╣ рдПрдХ рдЖрдХрд░реНрд╖рдг рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╢рд╛рдпрдж рдпрд╣ рднреА рдПрдХ рдЕрдЪреНрдЫрд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИ! рдореЗрд░реЗ рд╕рд╛рде рдЗрд╕ рдкрд░ рдмрдиреЗ рд░рд╣рдиреЗ рдХреЗ рд▓рд┐рдП Thx !!

рджреЗрдЦреЗрдВ https://github.com/caolan/async/issues/1673 рдХреНрдпреЛрдВ

async.mapLimit(['1','2','3','4','5'], 3, async num => delay(200).then(() => num*2)) // works

async.mapLimit(['1','2','3','4','5'], 3, num => delay(200).then(() => num*2)) // doesn't work

Promise.all(['1','2','3','4','5'].map(num => delay(200).then(() => num*2))) // works (plain promises)

рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдБ, рддреБрдо рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдореЗрд░реЗ рд╕рд╛рде рд╣реЛ, рдпрд╛рдиреА рд╡рд╣реА рдореБрджреНрджреЗ рдереЗред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореЗрд░рд╛ рдореБрдЦреНрдп рдмрд┐рдВрджреБ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реИ - рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреЗрд╡рд▓ "рд░рд┐рдЯрд░реНрди: рдПрдХ рд╡рд╛рджрд╛ рдЕрдЧрд░ рдХреЛрдИ рдХреЙрд▓рдмреИрдХ рдкрд╛рд░рд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ" - рдЗрд╕рд▓рд┐рдП, рдЬрдм рдореЗрд░реЗ рдкрд╛рд╕ рдХреЙрд▓рдмреИрдХ рд╕рдВрд╕реНрдХрд░рдг рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рдЫреЛрдбрд╝ рджреЗрдВ, рддреЛ рдореБрдЭреЗ рдХреИрд╕реЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЪрд╛рд╣рд┐рдП рдХреЙрд▓рдмреИрдХ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдХрд░рдиреЗ рдкрд░ 'async' рдХреАрд╡рд░реНрдб рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдПред рд╕рд╛рде рд╣реА, 'рд╡рд╛рджрд╛-async' рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдпрд╣ рдареАрдХ рдЙрд╕реА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕рд╛ рдореИрдВрдиреЗ рдЙрдореНрдореАрдж рдХреА рдереАред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореБрдЭреЗ рдЕрднреА рддрдХ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрдпрд╛ рд╣реИ рдХрд┐ рдКрдкрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ 'Promise.all' рдЙрджрд╛рд╣рд░рдг рдХреНрдпреЛрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ... рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореЗрд░реЗ рд▓рд┐рдП рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИред

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

рдореИрдВ рд╢рд░реНрдд рд▓рдЧрд╛ рд╕рдХрддрд╛ рд╣реВрдБ рдХрд┐ рдпрд╣ #1685 . рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ

рдореИрдВ рд╢рд░реНрдд рд▓рдЧрд╛ рд╕рдХрддрд╛ рд╣реВрдБ рдХрд┐ рдпрд╣ #1685 . рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ

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

рдореИрдВрдиреЗ рдЗрд╕ рдкрд░ рдФрд░ рдЧреМрд░ рдХрд┐рдпрд╛ред

mapLimit рдЗрд░рд╛рджреЗ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рдореИрдВ рдХрд┐рд╕реА рднреА рдореБрджреНрджреЗ рдХреЛ рджрд╛рдВрд╡ рдкрд░ рд▓рдЧрд╛рдКрдВрдЧрд╛ рдЬреЛ рд▓реЛрдЧ рдпрд╣рд╛рдВ рджреЗрдЦрддреЗ рд╣реИрдВ, рд╡рд╛рджрд╛-рд╡рд╛рдкрд╕реА рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рд╕реАрдорд╛рдУрдВ рдХреЗ рдХрд╛рд░рдг рд╣реИрдВ, рдпрд╛ рдХрдВрдкрд╛рдЗрд▓рд░реНрд╕ (рдЬреИрд╕реЗ рдмреЗрдмреЗрд▓, рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ) async рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред

рдореИрдВрдиреЗ рдЗрд╕ рдкрд░ рдФрд░ рдЧреМрд░ рдХрд┐рдпрд╛ред

mapLimit рдЗрд░рд╛рджреЗ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рдореИрдВ рдХрд┐рд╕реА рднреА рдореБрджреНрджреЗ рдХреЛ рджрд╛рдВрд╡ рдкрд░ рд▓рдЧрд╛рдКрдВрдЧрд╛ рдЬреЛ рд▓реЛрдЧ рдпрд╣рд╛рдВ рджреЗрдЦрддреЗ рд╣реИрдВ, рд╡рд╛рджрд╛-рд╡рд╛рдкрд╕реА рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рд╕реАрдорд╛рдУрдВ рдХреЗ рдХрд╛рд░рдг рд╣реИрдВ, рдпрд╛ рдХрдВрдкрд╛рдЗрд▓рд░реНрд╕ (рдЬреИрд╕реЗ рдмреЗрдмреЗрд▓, рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ) async рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред

рдРрд╕реЗ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдХреНрдпрд╛ рд╣реИ рдЬрд╣рд╛рдВ рд╕рдВрдХрд▓рди рдкрд░ async рд╕рдВрд░рдХреНрд╖рд┐рдд рдирд╣реАрдВ рд╣реИ?

async рдлрд╝рдВрдХреНрд╢рди рдХреЛ asyncify рд▓рдкреЗрдЯреЗрдВред http://caolan.github.io/async/v3/global.html#AsyncFunction

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

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

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

parky128 picture parky128  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

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

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

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