TIL 7일차

KHW·2021년 8월 12일
0

TIL

목록 보기
6/39

Promise / Callback

Promise : 일급으로 비동기 값을 다룬다.
대기/성공/실패 상태를 리턴한다.
그 후 원하는 일을 다룰 수 있다.

function add20(a) {
  return new Promise((resolve) => setTimeout(() => resolve(a + 20), 1000));
}

callback : undefined를 리턴한다.

function add10(a, callback) {
  setTimeout(() => callback(a + 10), 100);
}

array.map / promise.then

array : map을 통해 함수 합성
promise : then을 통해 함수 합성

Promise resolve / reject

  • resolve

1)

function a() {
  return new Promise(function (resolve, reject) {
    resolve("resolve");
  });
}

a().then(console.log).catch(console.log);

2)

new Promise(function (resolve, reject) {
  resolve("resolve");
})
  .then(console.log)
  .catch(console.log);

  • reject

1)

function a() {
  return new Promise(function (resolve, reject) {
    reject("reject");
  });
}

a().then(console.log).catch(console.log);

2)

new Promise(function (resolve, reject) {
  reject("reject");
})
  .then(console.log)
  .catch(console.log);

연속적인 resolve와 then

연속적으로 resolve를 해도 한번의 then으로 처리가 가능하다.

Promise.resolve(Promise.resolve(1)).then(function (a) {
  console.log(a);			//1
});

new Promise((resolve) => resolve(new Promise((resolve) => resolve(1)))).then(
  console.log				//1
);

instanceof

생성자의 prototype 속성이 객체의 프로토타입 체인 어딘가 존재하는지 판별

ex)

const P = new Promise((resolve) => resolve(100));
console.log(P instanceof Promise);		//true

const H = Promise.resolve(100);
console.log(H instanceof Promise);		//true

P와 H에는 Promise와 관련한 것이 객체 내에 존재한다.

profile
나의 하루를 가능한 기억하고 즐기고 후회하지말자

0개의 댓글