Promise

정지웅·2023년 7월 31일

1)why promise?
-> js에선 많은 경우 비동기적인 작업이 필요합니다. 비동기적인 작업을 진행할 때, 작업간 순서가 보장되어야 하거나 여러 개의 비동기 작업을 동시에 수행해 효율적으로 작업을 진행하기 위해 promise가 필요합니다.

2)how promise?

const myPromise = new Promise((resolve, reject) => {
  // 비동기 작업
  if (/* 작업 성공 */) {
    resolve(/* 결과 값 */);
  } else {
    reject(/* 오류 메시지 */);
  }
});

promise 객체의 state는 pending, fulfilled, rejected 3가지 상태를 갖게 됩니다.

myPromise.then((result) => {
  // 이행될 때 처리할 코드
}).catch((error) => {
  // 거부될 때 처리할 코드
});

fulfilled 상태가 된다면, then이 실행되고, rejected된다면 catch가 실행됩니다.

3)promise.all
-> promise.all(iterable)은 여러 개의 promise 객체를 동시에 처리할 때 사용합니다. fulfilled된 promise는 배열로 리턴됩니다. 여러 개 중 하나라도 rejected된다면, 즉시 거부 상태가 됩니다.

4)promise.allSettled
-> 여러개의 promise들이 실패하든 성공하든, status값에 결과를 받아 배열로 리턴합니다.

5)async, await
->코드가 간결해지지만, try-catch()를 활용해 예외처리를 해줘야 합니다. 동기적인 흐름으로 개발을 가능하게 해줍니다.

0개의 댓글