// 병렬처리
async function getApple() {
await delay(1000)
return '🍎'
}
async function getBanana() {
await delay(1000)
return '🍌'
}
async function pickFruits() {
const applePromise = getApple()
const bananaPromise = getBanana()
const apple = await applePromise
const banana = await bananaPromise
return `${apple} + ${banana}`
}
// 병렬처리 X
async function pickFruits() {
await getApple()
await getBanana()
}
병렬처리를 하지 않으면 getApple과 getBanana가 순차적으로 실행이 된다.
그러나 위 코드도 뭔가 지저분하다. 이를 대비한 Promise API가 있다.
// Promise에 있는 all 이라는 api를 활용하면 위와 같이
// 지저분하게 코드를 작성하지않아도 된다.
function pickAllFruits() {
return Promise.all([getApple(), getBanana()])
.then(fruits => friuts.join(' + '))
}
// pickAllFruits 가 성공적으로 실행되면 console.log
pickAllFruits().then(console.log)
✅ 체크
비동기를 사용할 때 async await 만을 쓸 것이 아니라,
Promise를 적절히 섞어가면서 사용하도록 하자.
'헷갈리는 개념 정리' 카테고리의 다른 글
즉시 실행 함수 (0) | 2022.05.24 |
---|---|
모듈(module) 시스템 정리 (0) | 2022.05.15 |
Nullish Coalescing (?? 연산자) 와 Optional Chaning(?. 연산자) (0) | 2022.05.10 |
1. /* VS. /** (0) | 2022.04.28 |