본문 바로가기

IT/JavaScript

async / await

async / await

Promise보다 더욱 사용하기 편리하고 쉬운 async/await 문법에 대해서 알아 보도록 한다.

async/await 는 기존의 비동기 처리 방식인 callback과 promise의 단점을 보완하고 가독성을 높여준다는 장점이 있다.

JavaScript에서는 특히 비동기 처리 방식 때문에 위에서 아래로 진행되는 일반적인 코드의 흐름이 아닌 경우가 꽤 있다.

async/await 는 이러한 단점을 보완하고 위에서 아래로 코드가 진행되도록 한다.

async function getA() {
    return "A";
}

function 앞에 async 키워드를 붙이는 순간 반환 값은 항상 Promise 이다.
이 값을 불러오기 위해서 then() 을 사용하곤 한다.

async function getA() {
    return "A";
}

getA()
  .then((res) => {
    console.log(res)
  })

비록 위의 코드는 then 하나에서 끝나지만 이러한 then과 그 안의 callback 함수가 많아지면 많아질수록
코드를 이해하기 힘들고 흐름을 파악하기도 어렵다.

async / await 활용

위의 코드를 async / await를 활용하여 다른 방식으로 표현해 보도록 한다.

async function getA() {
    return "A";
}

// Error!!
const a = await getA();

여기서 주의할 점은 awaitasync 함수 안에서만 동작한다.

async function getA() {
    return "A";
}

async function f() {
    const a = await getA();
    console.log(a);
}

f(); // "A"

'IT > JavaScript' 카테고리의 다른 글

TypeScript 타입 추론  (0) 2023.01.08
axios  (0) 2022.10.08
Promise  (0) 2022.09.22
Static  (0) 2022.09.12
Optional chaining  (0) 2022.08.29