[JS] 동기와 비동기 (3) : Async Await

Local Gaji·2023년 5월 20일

JavaScript

목록 보기
9/18

Async Await 패턴

Await는 이 promise 함수가 다 실행될 때까지 기다리라는 의미이다.
반드시 Async 함수 안에서 사용해야 한다.


const a = () => {
  return new Promise(resolve => {
    setTimeout(() => {
      console.log(1)
      resolve()   
    }, 1000)
  })
}
const b = () => {
  return new Promise(resolve => {
    setTimeout(() => {
      console.log(2)
      resolve()   
    }, 1000)
  })
}
const c = () => console.log(3)

const wrap = async() => {
  await a()  // a가 실행될 때까지 기달
  await b()  
  c()
}

wrap()

try - catch 로 에러 제어

const 함수 = val => {
  return new Promise((resolve, reject) => {
    if (조건) {
      resolve('성공')    // 인수가 then 속의 함수로 전달
    } else {
      reject('실패')     // 인수가 catch 속의 함수로 전달
    }
  })
}
const wrap = async () => {
  try {
    const res = await 함수(val)  
    console.log(res)
  } catch (err) {
    console.log(err)
  } finally (err) {
    console.log("done")
  }
}

wrap()

반복문에서 async-await 사용

const wrap = async () => {
  for (const val of list) {
    const res = await 함수(val)
    console.log(val, res)
  }
}

wrap()

0개의 댓글