js

JS promise

JavaScript

Posted by 동식이 블로그 on May 3, 2019

JS Prmoise

Promise복습

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// arrow function으로 사용하려면 return과 {}를 생략해야 됨
const makeOrder = function (order) {
    return new Promise((resolve, reject) => {
        let coffee;
        setTimeout(function() {
            if(order === undefined){
                reject("주문 잘못함")
            }else{
                coffee = order
                resolve(coffee)
            }
        }, 3000)
    })
}
// nonblocking을 blocking으로 처리
const getCoffee = function(order){
    try{
        const coffee = makeOrder(order)
    }
    catch(error){
        console.log(error)
    }
}

getCoffee("Americano")
>>> UnhandledPromiseRejectionWarning: 주문 잘못함
// 현재 nonblocking하게 작동하기 때문에
  • 해결
    • async
    • await
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// async 추가
const getCoffee = async function(order){
    try{
        // await 추가
        // await가 붙으면 오른쪽 함수가 끝나지 않으면 반환 안됨
        const coffee = await makeOrder(order)
        console.log(coffee)
    }
    catch(error){
        console.log(error)
    }
}

getCoffee("Americano")