Mission. Java Script 비동기적인 요소를 동기적으로 바꾸기
1) 목적
순서 보장이 필요한 어떤 로직에서 순서를 보장 받기 위해서이다.
2) 방법
Promise
를 사용해 비동기 작업을 동기적으로 처리한다.- 반복부분을 함수화한다.
3) 봉착한 문제
반복되는 코드를 함수화할 때 아메리카노만 리턴되었다.
4) 시도
- 변수
new name
부분에 값인 아메리카노를name
으로 바꾼다.prevName ? prevName + ", " + name : name;
을 추가한다.
5) 알게된 점
- new 연산자로 호출한 Promise의 인자로 넘어가는 콜백은 바로 실행된다.
- 내부의 resolve(또는 reject) 함수를 호출하는 구문이 있을 경우 resolve(또는 reject) 둘 중 하나가 실행되기 전까지는 다음(then), 오류(catch)로 넘어가지 않는다.
- 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("카페라떼"));