#15. Promise

Seulyi Yoo·2022년 7월 10일
0

javascript grammar

목록 보기
15/20
post-thumbnail
const pr = new Promise((resolve, reject) => {
	// code
});

// resolve -> 성공, reject -> 실패 
// callback함수

const pr = new Promise((resolve, reject) => {
	setTimeout(()=>{
    resolve('OK')
  }, 1000)
});

console.log("시작");
pr.then((result) => {
  console.log(result);
})
  .catch((err) => {
    console.log(err);
  })
  .finally(() => {
    console.log("END");
  });


const pr = new Promise((resolve, reject) => {
	setTimeout(()=>{
    // resolve('OK');
    reject(new Error("err..."));
  }, 1000)
});

console.log("시작");
pr.then((result) => {
  console.log(result);
})
  .catch((err) => {
    console.log(err);
  })
  .finally(() => {
    console.log("END");
  });


const f1 = (callback) => {
  setTimeout(function(){
    console.log("1번 주문 완료");
    callback();
  }, 1000);
};

const f2 = (callback) => {
  setTimeout(function(){
    console.log("2번 주문 완료");
    callback();
  }, 3000);
};

const f3 = (callback) => {
  setTimeout(function(){
    console.log("3번 주문 완료");
    callback();
  }, 2000);
};

console.log("START");
f1(function(){
  f2(function(){
    f3(function(){
      console.log("END");
    });
  });
}


const f1 = () => {
  return new Promise((res, rej) => {
    setTimeout(() => {
      res('1번 주문 완료');
    }, 1000);
  });
};

const f2 = (message) => {
  console.log(message);
  return new Promise((res, rej) => {
    setTimeout(() => {
      res('2번 주문 완료');
    }, 3000);
  });
};

const f3 = (message) => {
  console.log(message);
  return new Promise((res, rej) => {
    setTimeout(() => {
      res('3번 주문 완료');
    }, 2000);
  });
};

// Promise chaining
console.log("START");
f1()
  .then((res) => f2(res))
  .then((res) => f3(res))
  .then((res) => console.log(res))
  .catch(console.log)
  .finally(() => {
    console.log('END');
  });


const f1 = () => {
  return new Promise((res, rej) => {
    setTimeout(() => {
      res('1번 주문 완료');
    }, 1000);
  });
};

const f2 = (message) => {
  console.log(message);
  return new Promise((res, rej) => {
    setTimeout(() => {
      rej('xxx');
    }, 3000);
  });
};

const f3 = (message) => {
  console.log(message);
  return new Promise((res, rej) => {
    setTimeout(() => {
      res('3번 주문 완료');
    }, 2000);
  });
};

console.log("START");
f1()
  .then((res) => f2(res))
  .then((res) => f3(res))
  .then((res) => console.log(res))
  .catch(console.log)
  .finally(() => {
    console.log('END');
  });


const f1 = () => {
  return new Promise((res, rej) => {
    setTimeout(() => {
      res('1번 주문 완료');
    }, 1000);
  });
};

const f2 = (message) => {
  console.log(message);
  return new Promise((res, rej) => {
    setTimeout(() => {
      res('2번 주문 완료');
    }, 3000);
  });
};

const f3 = (message) => {
  console.log(message);
  return new Promise((res, rej) => {
    setTimeout(() => {
      res('3번 주문 완료');
    }, 2000);
  });
};

// Promise All
console.time('x')
Promise.all([f1(), f2(), f3()])
.then((res)=>{
  console.log(res);
  console.timeEnd('x');
});


const f1 = () => {
  return new Promise((res, rej) => {
    setTimeout(() => {
      res('1번 주문 완료');
    }, 1000);
  });
};

const f2 = (message) => {
  console.log(message);
  return new Promise((res, rej) => {
    setTimeout(() => {
      rej('xxx');
    }, 3000);
  });
};

const f3 = (message) => {
  console.log(message);
  return new Promise((res, rej) => {
    setTimeout(() => {
      res('3번 주문 완료');
    }, 2000);
  });
};

// Promise All
console.time('x')
Promise.all([f1(), f2(), f3()])
.then((res)=>{
  console.log(res);
  console.timeEnd('x');
});


const f1 = () => {
  return new Promise((res, rej) => {
    setTimeout(() => {
      res('1번 주문 완료');
    }, 1000);
  });
};

const f2 = (message) => {
  console.log(message);
  return new Promise((res, rej) => {
    setTimeout(() => {
      rej('xxx');
    }, 3000);
  });
};

const f3 = (message) => {
  console.log(message);
  return new Promise((res, rej) => {
    setTimeout(() => {
      res('3번 주문 완료');
    }, 2000);
  });
};

// Promise.race
console.time('x');
Promise.race([f1(), f2(), f3()])
.then((res)=>{
  console.log(res);
  console.timeEnd('x');
});

profile
성장하는 개발자 유슬이 입니다!

0개의 댓글