рдкреНрд░рд╢реНрди: async рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рдирдпрд╛ рдФрд░ рдмрд╣реБрдд рд╕рд╛рд░реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди рдХреЛрдб рд╣реИ, 2 рд▓рдЧрднрдЧ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ
async.eachLimit(files, 2, async (file, callback) => {
reportStep("downloading");
console.log("async start: " + file.path);
await addFile(file.path, file.size);
console.log("async end: " + file.path);
callback();
})
reportStep("completed")
рдмреЗрд╢рдХ, "рдкреВрд░реНрдг" рдЬрд▓реНрджреА рд╕реЗ рдирд┐рдХрд╛рд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдмрдХрд┐ async.eachLimit funcs рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реИред
рд╕рднреА рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдХреНрдпрд╛ рд╣реИ?
рдПрдирд╡реАрдПрдо, рдбреЙрдХреНрд╕ рдХреЛ рдХрд╛рдлреА рдХрд░реАрдм рд╕реЗ рдирд╣реАрдВ рдкрдврд╝рд╛ред
рдЕрднреА рддрдХ рдПрдХ рдФрд░ рдХреЙрд▓рдмреИрдХ рдкрд░рдо рд╣реИ, рдЗрд╕реЗ рдПрдХ рд╡рд╛рджреЗ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛ рдЬрд┐рд╕рдХрд╛ рдореИрдВ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ
function download(files) {
return new Promise((resolve, reject) => {
async.eachLimit(files, 2, async (file, callback) => {
reportStep("downloading");
console.log("async start: " + file.path);
await addFile(file.path, file.size);
console.log("async end: " + file.path);
callback();
}, (error) => {
if (error){
reject(error);
} else {
resolve();
}
})
});
}
await download(files)
рд╕рд╛рдЗрдб рдиреЛрдЯ, рдпрджрд┐ рдЖрдк v3
рдХреЗ рдкреВрд░реНрд╡-рд░рд┐рд▓реАрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рд░реИрдкрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдЖрдк рдЕрдВрддрд┐рдо рдХреЙрд▓рдмреИрдХ рдкрд╛рд╕ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рддреЛ eachLimit
рдПрдХ рд╡рд╛рджрд╛ рд╡рд╛рдкрд╕ рдХрд░реЗрдЧрд╛ред
рд╣рдореНрдо, рдореИрдВрдиреЗ async.eachLimit рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд▓реЗрдХрд┐рди рдпрд╣ рдХрд┐рд╕реА рдХрд╛рд░рдг рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдХрд╛рд░рдг рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рдерд╛ред рдЗрд╕рдиреЗ рдореБрдЭреЗ рдпрд╣рд╛рдВ рдкреЛрд╕реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ред рдореБрдЭреЗ рдЗрд╕реЗ рдПрдХ рдФрд░ рд╢реЙрдЯ рджреЗрдирд╛ рд╣реЛрдЧрд╛ред
рдХреНрдпрд╛ рдЖрдк рд╕рдлрд▓ рд╣реБрдП? рдореБрдЭреЗ рдЗрд╕рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝ рд░рд╣рд╛ рд╣реИ - рдпрд╣ рд╕рднреА рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рд╡рд╛рджреЗ рдЦрддреНрдо рд╣реЛрдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред