ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Promise] 비동기 처리
    Programming/javascript 2020. 6. 18. 23:08

    Promise

    비동기 처리를 도와주는 javascript 오브젝트. 콜백지옥 탈출을 도와준다.

    RxSwift 의 Stream 처럼, 값의 흐름을 제어가 가능

     

    State 

    상태. 프로세스가 성공했는지, 실패했는지

    pending(수행중) ------->  fulfilled(성공적으로 오퍼레이션 끝냄) /  rejeacted(네트워크에 문제가 생김)

     

    프로듀서

    정보제공

    // 프로듀서 
    const promise = new Promise((resolve, reject) => {
      // 비동기 처리 : 네트워크 처리, 파일읽기등 시간이 걸리는 작업
      console.log("resolve running....");
    
      setTimeout(() => {
      // resolve('success'); // 성공적으로 처리 완료시, resolve 콜백함수를 전달
    
      reject(new Error("no network")); // 실패시, reject 함수 전달
      }, 2000);
    });

     

    소비자

    정보소비

          /**
           * 2.Consumers : then , catch, finally
           * promise 가 정상적으로 수행이 되고난 후, resolve 콜백함수로 전달한 값을 가져올 수 있다
          */
          promise
            .then(value => {
              // promise 수행이 성공했을때
              // 값 or promise전달 가능
              console.log(value);
            })
            .catch(error => {
              // promise 에서 실패했을때, 에러메시지 출력
              console.log(error);
            })
            .finally(() => {
              // 성공, 실패 모두 들어옴
              console.log("finally");
            });

     

    'Programming > javascript' 카테고리의 다른 글

    [NodeJS] REST API  (0) 2020.06.23
    [NodeJS] package.json 으로 패키지 관리하기  (0) 2020.06.21
    [NodeJS] 미들웨어 - ExpressJS  (0) 2020.06.09
    [NodeJS] hello world!  (0) 2020.06.08

    댓글

Designed by Tistory.