async, await

김세주·2021년 2월 3일
0

JavaScript

목록 보기
11/12
function fetchUser() {
  return new Promise((resolve, reject) => {
    // do network request in 10 secs...
    resolve('seju')
  });
}

const user = fetchUser();
user.then(console.log);
console.log(user)

이렇게 promise로 구현 하는 것을 더 간단하게
async로 구현할 수 있다

async function fetchUser() {
  
    resolve('seju')
  });
}

const user = fetchUser();
user.then(console.log);
console.log(user)

await

await이라는 키워드는 async가 붙은 함수에만 쓸 수 있다.

function delay(ms) {
    return new Promise(resolve => 
        setTimeout(resolve, ms))
}

async function getApple() {
    await delay(1000);
    return 'apple'
}
async function getBanana() {
    await delay(1000);
    return 'Banana'
}

function pickFruits() {
    return getApple().then(apple =>
     {  return getBanana().then( banana => `${apple} + ${banana}`);
    })
    
}

pickFruits().then(console.log)

이렇게 프라미스로 작성되고 콘솔로그하는것을 await을 써서 간편하게 할 수 있다.

function delay(ms) {
    return new Promise(resolve => 
        setTimeout(resolve, ms))
}

async function getApple() {
    await delay(1000);
    return 'apple'
}
async function getBanana() {
    await delay(1000);
    return 'Banana'
}

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

pickFruits().then(console.log)

전체 프라미스 받아오는법

function pickAllfruits() {
    return Promise.all([getApple(), getBanana()]).then(fruits =>
        fruits.join(' + '));
}

pickAllfruits().then(console.log)

간편하게 Promise.all 해주면된다.

profile
시간은 내 편이다.

0개의 댓글