JavaScript 비동기 함수(async/await)

3053 단어 javascvriptasyncawait
비동기 및 대기는 비동기 작업을 표현하기 위해 Promise 위에 구축됩니다.

함수 내에서 await 키워드는 약속이 해결될 때까지 실행을 연기하는 모든 Promise에 적용할 수 있습니다.

async 키워드가 있는 함수는 Promise를 반환합니다. 키워드 async가 있는 함수는 비동기 작업을 수행할 수 있지만 여전히 동기식으로 보입니다.

await 메서드는 약속이 이행되거나 거부될 때까지 기다리는 데 사용됩니다.

일반 구문

Async function function_name(){
  await some_promise()
}


비동기/대기 없이

        let result = function(score){
            return new Promise(function(resolve, reject){
                console.log("Calculating results...")
                if(score>50){
                    resolve("Congratulation! You have passed")
                }else{
                    reject("You have failed")
                }
            })
        }
        let grade = function(response){
            return new Promise(function(resolve, reject){
                console.log("Calculating your grade...")
                resolve("Your grade is A. " + response)
            })
        }
        result(80).then(response => {
            console.log("Result Received")
            return grade(response)
        }).then(finalgrade => {
            console.log(finalgrade)
        }).catch(err => {
            console.log(err)
        })


산출


        async function calculateResults(){
            const response = await result(80)
        }


await 키워드가 하는 일입니다. 결과 약속이 해결될 때까지 약속 반환이 무엇이든 변수 응답을 저장합니다.

비동기/대기로

 let result = function(score){
            return new Promise(function(resolve, reject){
                console.log("Calculating results...")
                if(score>50){
                    resolve("Congratulation! You have passed")
                }else{
                    reject("You have failed")
                }
            })
        }
        let grade = function(response){
            return new Promise(function(resolve, reject){
                console.log("Calculating your grade...")
                resolve("Your grade is A. " + response)
            })
        }
        async function calculateResults(){
            try{
                const response = await result(80);
                console.log("Results Received");
                const finalgrade = await grade(response)
                console.log(finalgrade)
            }catch(err){
                console.log(err)
            }
        }
        calculateResults()


산출

좋은 웹페이지 즐겨찾기