Promise

Haechan Kim·2022년 5월 17일

Node.js

목록 보기
14/15

Promsie란?
js에서 제공하는 비동기 간편하게 처리 도와주는 obj.
callback 대신

언제 작업 완료될 지 모름 but 약속
ㄴ Promise에 등록하면 나중에 알려 줌

기능 처리 후 성공, 실패 알려줌
ㄴ resolve, reject

  • 상태: pending -> fulfulled or rejected
  • producer, consumer
  1. Producer
// promise 만들어지면 executer 콜백 함수 바로 실행 됨
const promise = new Promise((resolve, reject) => {
    console.log('doing something...');
    setTimeout(() => {
        resolve('done'); // 성공일 때 값 전달
    }, 2000);
});
  1. Consumer
  • then, catch, finally
// 1. Producer
// promise 만들어지면 executer 콜백 함수 바로 실행 됨
const promise = new Promise((resolve, reject) => {
    console.log('doing something...');
    setTimeout(() => {
        resolve('done'); // 성공일 때 값 전달
    }, 2000);
});

// 2. Consumer
promise.then((value) => { // value는 resolve에 전달된 값
    console.log(value); // done
})
.catch(error => {
    console.log('error');
})
  1. Promise chaining
const fetchNum = new Promise((resolve, reject) => {
    setTimeout(() => resolve(1), 1000);
});

fetchNum
.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)); // 5

0개의 댓글