비동기

유아현·2023년 1월 23일
0

JavaScript

목록 보기
24/25
post-thumbnail
const fakeRequest = (url) => {
  /*
  Promise는 new 키워드를 통해서 Promise 객체를 생성한다.
  ? 응답에 성공했을 때 처리하는 resolve 함수와
  ? 응답에 실패했을 때 처리하는 reject 함수
  ! 두 가지 콜백함수를 인자로 갖는다

  정상적으로 처리되었다면 resolve 함수를 호출하게 되는데 이는 .then 메서드를 통해서 접근할 수 있다.
  에러가 발생했을 경우에는 reject 함수를 호출하게 되는데 이는 .catch 메서드를 통해 접근할 수 있다.
  정상처리 여부와 관계 없이 처리하는 것은 .finally를 통해 접근 가능하다.

  Promise chaining => .then, .catch, .finally 메서드는 Promise를 반환하기 때문에
  체이닝이 가능해 .then으로 연결이 가능하다. 마지막에 .catch로 에러 한번에 처리

  
  */
  return new Promise((resolve, reject) => {
    const rard = Math.random();
    setTimeout(() => {
      rard < 0.7 ? resolve('Your fake data here!') : reject('request error');
    }, 1000);
  });
};

fakeRequest('/dogs/1')
  .then((data) => {
    console.log('DONE WITH REQUEST!');
    console.log(`data is, ${data}`);
  })
  .catch((e) => {
    console.log(`OH NO!, ${e}`);
  });

0개의 댓글