본문 바로가기
JavaScript

JavaScript Promise

by Son 2022. 5. 9.

'use strict'

const { reject } = require("async")

// promise is a JavaScript object for asynchronous operation
// State: pending -> fulfilled or rejected
//Producer vs Consumer

//1.Producer
// when new Promise is created, the ececutor runs automatically
const promise = new Promise((resolve, reject) => {
    // doing some heavy work (network, read, files)
    console.log('doing something...');
    setTimeout(() => {
        //resolve('son'); //값을 주고 통신에서 받은 데이터를 받아옴
        reject(new Error('no network'));
    }, 2000); //after 2S Start 
});

//2. Consumers : then, catch, finally
promise.then((value) =>{
    console.log(value); // value값에 들어가는 값은  resolve('son')의 파라메터 값 즉 여기서는 son이다

})
.catch(error =>{
    console.log(error);
});
.finally(() => {
    console.log('finally');
});

//3. Promise chaning
const fetchNumber = new Promise((resolve, jeject) => {
    setTimeout(() => resolve(1), 1000);
});

fetchNumber
.then(num => num *2) // 1*2
.then(num => num *3) // 2*3
.then(num => {
    return new Promise((resolve, reject) =>{
        setTimeout(() => resolve(num - 1), 1000); //num =5
    });
})
.then(num => console.log(num)); //5출력


'JavaScript' 카테고리의 다른 글

자바스크립트 기본  (0) 2022.05.19
JavaScript await and Promise APIs  (0) 2022.05.16
자바스크립트 배열  (0) 2022.02.18
자바스크립트 object  (0) 2022.02.12
JavaScript Class object  (0) 2022.02.03