본문 바로가기
tech documents/memo

[우아한 테크러닝 3기] async

by kimtahen 2020. 9. 3.
반응형
setTimeout(function(x){
  console.log('First');
  setTimeout(function(y){
    console.log('Second');
  },2000)
}, 1000);

- Callback hell이다.

 

const p1 = new Promise((resolve, reject) => {

});

p1.then(function(r){
  
}).catch(function(r){

})

- Promise()에 넘겨주는 함수는 `즉시 실행됨`.

- resolve와 reject는 함수이다.

- resolve를 호출하면 then에 넣어준 함수를 호출해준다. reject를 호출하면 catch에 넣어준 함수를 호출해준다.

 

const delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));

async function main() {
  console.log("1");
  // 어떻게 3초를 멈추게 하는가?
  try {
    await delay(2000);
    console.log("2");
  } catch (e) {
    console.log("error");
  }
}

main();

async 함수는 await을 사용할 수 있다. await은 Promise 객체가 resolve 될때까지 기다렸다가 Promise 객체의 값을 리턴하는 방식으로 작동한다. reject는 try~catch 문에서 catch에 잡힌다.

반응형

댓글