자바스크립트 13. 비동기의 꽃 JavaScript async 와 await 그리고 유용한 Promise APIs

728x90
반응형

  
자바스크립트 13. 비동기의 꽃 JavaScript asyncawait 그리고 유용한 Promise APIs
async & await
clear style of using promise :)
1. async
function fetchUser() {
return new Promise((resolve, reject) => {
// do network request in 10secs...
resolve('ellie');
})
}
코드 블럭이 자동으로 promise로 바뀜
async function fetchUser() {
// do network request in 10secs...
return 'ellie'
}
const user = fetchUser();
user.then(console.log);
console.log(user);
2. await
function delay(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
async function getApple() {
await delay(3000);
return 'apple';
}
async function getBanana() {
await delay(3000);
return 'banana';
}
function pickFruits() {
return getApple().then(apple => {
return getBanana().then(banana => `${apple} + ${banana}`);
});
}
pickFruits().then(console.log);
function pickFruits() {
try {
const apple = await getApple();
const banana = await getBanana();
} catch() {
}
return `${apple} + ${banana}`;
}
두가지가 연관이 없을때 병렬적으로 사용가능
function pickFruits() {
const BananPromise = getBanana();
const applPromise = getApple();
const apple = await applPromise;
const banana = await BananPromise;
return `${apple} + ${banana}`;
}
pickFruits().then(console.log);
3. useful Promise APIs
function pickAllFruits() {
return Promise.all([getApple(), getBanana()])
.then(fruits => fuits.join(' + '));
}
pickAllFruits().then(console.log);
function pickOnlyOne() {
return Promise.race([getApple(), getBanana()]);
}
pickOnlyOne().then(console.log);

https://www.youtube.com/watch?v=aoQSOZfz3vQ

 

728x90
반응형