-
[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