TIL 10. Java Script 콜백함수

yeah·2023년 5월 26일
0

Today I Learned

목록 보기
10/70
post-thumbnail

Mission. Java Script 비동기적인 요소를 동기적으로 바꾸기

1) 목적

순서 보장이 필요한 어떤 로직에서 순서를 보장 받기 위해서이다.

2) 방법

  1. Promise를 사용해 비동기 작업을 동기적으로 처리한다.
  2. 반복부분을 함수화한다.

3) 봉착한 문제

반복되는 코드를 함수화할 때 아메리카노만 리턴되었다.

4) 시도

  1. 변수 new name 부분에 값인 아메리카노를 name으로 바꾼다.
  2. prevName ? prevName + ", " + name : name;을 추가한다.

5) 알게된 점

  1. new 연산자로 호출한 Promise의 인자로 넘어가는 콜백은 바로 실행된다.
  2. 내부의 resolve(또는 reject) 함수를 호출하는 구문이 있을 경우 resolve(또는 reject) 둘 중 하나가 실행되기 전까지는 다음(then), 오류(catch)로 넘어가지 않는다.
  3. replace() 메서드는 특정 문자열을 다른 문자열로 변환할 수 있다.

6) 결과물

var addCoffee = function (name) {
  return function (prevName) {
    //
    return new Promise(function (resolve) {
      setTimeout(function () {
        //
        var newName = prevName ? `${prevName}, ${name}` : name;
        console.log(newName);
        resolve(newName);
      }, 500);
    });
  };
};
addCoffee("에스프레소")()
  .then(addCoffee("아메리카노"))
  .then(addCoffee("카페모카"))
  .then(addCoffee("카페라떼"));
profile
기록과 회고

0개의 댓글