반응형
예제 4-17) 비동기 작업의 동기적 표현 - Promise + Async/await
var addCoffee = function (name) { // 최초의 addCoffee 함수는 resolve(name)과 함께 Promise를 반환한다.
return new Promise(function (resolve) {
setTimeout(function () {
resolve(name);
}, 500);
})
};
var coffeeMaker = async function () {
var coffeeList = '';
var _addCoffee = async function (name) {
coffeeList += (coffeeList ? ',' : '') + await addCoffee(name);
};
await _addCoffee('에스프레소');
console.log(coffeeList);
await _addCoffee('아메리카노');
console.log(coffeeList);
await _addCoffee('카페모카');
console.log(coffeeList);
await _addCoffee('카페라떼');
console.log(coffeeList);
}
비동기 작업을 수행하고자 하는 함수 앞에 async를 표기하고
함수 내부에서 실질적인 비동기 작업이 필요한 위치마다 await를 표기하는 것만으로
뒤의 내용을 Promise로 자동 전환하고, 해당 내용이 resolve된 이후에야 다음으로 진행합니다.
* resolve <-> reject
반응형
'책 > 코어자바스크립트' 카테고리의 다른 글
05. 클로저와 debounce, 커링 (0) | 2022.03.15 |
---|---|
콜백함수에서의 this (0) | 2022.03.12 |
[코어자바스크립트] 03. 종잡을 수 없는 this (0) | 2022.03.02 |
[코어자바스크립트] 01. 불변 객체, 넌 누구냐? (0) | 2022.02.10 |