본문 바로가기

헷갈리는 개념 정리

비동기 병렬 처리

// 병렬처리

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