본문 바로가기

클라이언트/JavaScript
[자바스크립트(JavaScript)] Promise

// Promise

- 최종 값이나 작동 여부에 대한 약속

~ then()을 이용해서 request 성공 시 이후 작업을 처리할 수 있다.
~ catch()를 이용해서 request  실패 시 작업을 처리할 수 있다.

- then 콜백에서는 Promise를 반환할 수 있다.

//request
    .then(() => {
    	//성공 시 작업
        return 새로운 reques
    })
    .then(() => {
    	//새로운 request 성공 시 작업
    })
    .catch(() => {
    	//새로운 request 실패 시 작업
    })

// 새 Promise 작성법 (몰라도 되지만 알면 좋다)

- new Promise()를 선언하고 () 안에 함수를 전달한다.

- 전달되는 함수에는 resolve, reject 라는 매개변수가 있다. 
   > 이름이 바뀌어도 되지만 보통 이렇게 사용한다.

- 전달되는 함수 안에 resolve() 메소드를 선언하여 성공 처리를 하고 성공 시 응답을 () 안에 전달한다.
- 전달되는 함수 안에 reject() 메소드를 선언하여 실패 처리를 하고 실패 시 응답을 () 안에 전달한다.


const fakeRequest = url => {
  return new Promise((resolve, reject) => {
    const rand = Math.random();
    setTimeout(() => {
      if (rand < 0.7) {
        resolve('DONE WITH REQUEST!');
      } else {
        reject('REQUEST ERROR');
      }
    }, 1000);
  });
};

fakeRequest('/dogs/1')
  .then(response => {
    console.log(response);
  })
  .catch(error => {
    console.log(error);
  });