ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 자바스크립트 Chapter 25 Promises
    Computer Science/JavaScript 2019.05.18 18:23

     

    모든 자바스크립트 개발자가 알아야 하는 33가지 개념

     

    Chapter 25 Promises

     

    이번 장에서는 프로미스에 대해 알아보자.

     

    Promises

     

    프로미스는 비동기 조작의 최종 완료나 실패를 표현해주는 객체이다.

     

    비동기 작업이 성공하거나 실패한 뒤에

     

    then()을 여러번 사용하여 여러 개의 콜백을 추가할 수 있고

     

    각각의 콜백은 주어진 순서대로 실행된다.

     

    프로미스의 가장 큰 장점은 위의 chaining(연쇄)이다.

     

    Promise.prototype.then(), Promise.prototype.catch() 메서드는

     

    다른 프로미스를 반환하기 때문에 서로 연결할 수 있다.

     

    그럼 프로미스의 생성부터 종료까지를 살펴보자.

     

    대기(pending): 이행되거나 거부되지 않은 초기 상태.

     

    이행(fulfilled): 연산이 성공적으로 완료됨.

     

    거부(rejected): 연산이 실패함.

     

    출처: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise

     

    const promise = new Promise(function(resolve, reject){
      if(/* 조건 */){
        resolve("Success")
      }
      else {
        reject(new Error("Error"))
      }
    })

     

    new Promise -> 대기(Pending)

     

    Promise는 resolve, reject라는 두개의 매개 변수가 있는

     

    콜백 함수를 인수로 취한다. 

     

    promise.then(function(result) {
      console.log("Promise worked")
    }, function(err) {
      console.log("Something broke");
    })

     

    Promise가 성공하면, resolve가 실행되고 이행(Fulfilled) 상태가 된다.

     

    그리고 then()을 이용하여 처리 결과 값을 받아서

     

    console에 Promise worked가 기록된다.

     

    그렇지 않으면 에러가 발생한다 -> 거부(rejected)

     

    promise.then().catch(function(err){
      console.log(err) // Error
    })

    댓글 0