async.series ν¨μ λ΄μμ async awaitλ₯Ό μ¬μ©ν μ μμ΅λκΉ?
λͺ κ°μ§ κ°λ¨ν μ€νμ νμ§λ§ μμλλ‘ μλνμ§ μμμ΅λλ€.
κ·Έλ λ ν μμμ΄! κ·Έλ¬λ μ½λ°±μ μ¬μ©νλ λμ κ°μ λ°ννκ±°λ μ€λ₯λ₯Ό λμ§λλ€. http://caolan.github.io/async/global.html
μ’μ-λ΄κ° λκ°λ₯Ό μ€ν΄νλ©΄ μ©μ ν΄μ£ΌμΈμ π μ΄λ κ²?
const result = await async.each(openFiles, async (file) => {
try: {
await asyncOperation(file);
return null
} catch(err) {
return err
}
})
async
ν¨μλ μλμΌλ‘ μ€λ₯λ₯Ό κ±°λΆλ‘ λ³ννλ―λ‘ μ€λ₯μ λν΄ νΉλ³ν μμ
μ μννμ§ μμΌλ €λ κ²½μ° μμ λ₯Ό λ€μκ³Ό κ°μ΄ μ€μΌ μ μμ΅λλ€.
const result = await async.each(openFiles, async (file) => {
await asyncOperation(file);
})
κ°μ λ μ€λν«μ κ°μ¬λ립λλ€. κ°λ¨ν μλ리μ€μμ μλνλ κ² κ°μ§λ§ λ€μ μ€μ μμλ μλνμ§ μμ΅λλ€.
for (const tasks of fileTasks) {
const result = await async.each(tasks, async (file) => {
await asyncOperation(file);
})
}
λλ for-of 루νκ° λΉλκΈ° μμ μ νμ©νλ€λ κ²μ μ΄ν΄νκ³ μμμ΅λκΉ?
async.each
λ Promiseλ₯Ό λ°ννμ§ μμΌλ―λ‘ await
ν μ μμ΅λλ€.
μ μμμ΄. λ°λΌμ for-of async/await μ΅μ μ μ¬μ©νλ κ²μ asyncμμ μ’μ ν¨ν΄μ΄ μλλλ€. μ΄κ²μ΄ λΉλκΈ° λ‘λ맡μ μλ€λ©΄ μ§κΈ νμκ² μ΅λκΉ?
λ―ΈμΉ κ³Όνμ΄ κ³νλμ΄ μμ΅λλ€. π
λλ util.promisify()
π
(λλ pify()
)
async.series
μ λν μ§λ¬Έμμ async.each
λ‘ μ΄λνλ μ΄μ λ 무μμ
λκΉ?
const _async = require('async');
const _ = require('lodash');
public doSomething = async(num) : Promise<any> => {
return num*num + 1;
}
public async getResults() {
let results = new Array<any>();
let tasks = [];
try {
const list = [1,2,3,4,5,6,7,8,9,10];
list.forEach((item) => {
tasks.push((callback) => {
this.doSomething(item.then(
(res) => {
results.push(res);
callback(null, res);
}
);
})
})
results = await new Promise((resolve) => {
_async.series(tasks, (err, res) => {
console.log(res);
if (err) {
results.push(err);
}
resolve(results);
})
});
} catch (err) {
results.push(err.message);
console.log(err);
}
return _.join(results, '\r\n');
}
@aearly Hey fen μ΄λ€ extracly λ²μ μ΄ async/awaitλ₯Ό μ§μνλμ§ μλ €μ£Όμκ² μ΅λκΉ?
caolan/async λ²μ 2.6.0μ μ¬μ©νκ³ μμ΅λλ€.
κ°μ₯ μ μ©ν λκΈ
λ―ΈμΉ κ³Όνμ΄ κ³νλμ΄ μμ΅λλ€. π