JS Promise #7

Gyus·2021년 8월 23일
0

자바스크립트

목록 보기
7/8

Promise

  • Promise is JS Object for asynchronous operations.
  • State : pending > fulfilled or rejected
  • Producer vs Consumer

Producer

  • When new Promise is created, executer runs automatically.

    const promise = new Promise((resolve, reject) =>{
     console.log("doing something....")
     setTimeout(() => {
       resolve('gyus')
       //reject(new Error('no Network'));
       }
     )
    })
  • Resolve : 콜백함수가 잘 처리되었을 때

  • Reject : 콜백 함수가 잘 못 처리되었을 때

    Consumer

    promise
     .then(value => {
       console.log(value)
     })
     .catch(error => {
       console.log(error);
     })
     .finally( () =>{
       console.log("finally")
     })
    
  • then : resolve의 값을 받는다.

  • catch : error의 값을 받는다.

  • finally : resolve든 reject든 무조건 실행된다.

    Promise chaining

  • Promise는 chaining해서 나타낼수 있다.

 const fetchNumber = new Promise((resolve, reject) => {
  setTimeout(() => resolve(1),1000)
})

fetchNumber
  .then(num => num * 2)
  .then(num => num * 3)
  .then(num => {
    return new Promise((resolve, reject) => {
      setTimeout(()=>resolve(num-1),1000);
    })
  })
  .then(num => console.log(num))
profile
푸로구래머

0개의 댓글