async & await

2021. 5. 27. 23:11TIL/자바스크립트

728x90
'use strict';

// async & await
// clear style of using promise

// 1. async
async function fetchUser() {
    // do network reqeust in 10 secs...
    return 'bella';
}

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(2000);
    return '🍎';
}

async function getBanana() {
    await delay(1000);
    return '🍌';
}

async function pickFruits() {
    const applePromise = getApple();
    const bananaPromise = getBanana();
    const apple = await applePromise;
    const banana = await bananaPromise;
    return `${apple} + ${banana}`;
}

pickFruits().then(console.log);

// 3. useful Promise APIs
function pickAllFruits() {
    return Promise.all([getApple(), getBanana()])
    .then(fruits => fruits.join(' + '));
}
pickAllFruits().then(console.log);

function pickOnlyOne() {
    return Promise.race([getApple(), getBanana()]);
}
//race: 먼저 받아지는 값을 출력
pickOnlyOne().then(console.log);

'TIL > 자바스크립트' 카테고리의 다른 글

실시간 시계 만들기  (0) 2021.06.17
로그인 화면 만들기  (0) 2021.06.17
callback to promise  (0) 2021.05.24
Promise  (0) 2021.05.24
비동기처리 콜백  (0) 2021.05.20