Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript의 비동기/대기 함수

<시간/>

Promise 개체는 비동기 작업의 최종 완료(또는 실패)와 결과 값을 나타냅니다. 비동기 대기 함수 및 연산자는 약속에서 작동합니다.

Async/await 함수는 백그라운드에서 비동기 작업을 수행하면서 완전히 동기적으로 보이는 코드를 작성하는 데 도움이 됩니다.

예를 들어, 약속을 반환하는 비동기 함수가 있다고 가정해 보겠습니다.

// Promise that resolves to 100 after 2sec
function getHundred() {
   return new Promise(resolve => {
      setTimeout(() => {
         resolve(100);
      },    2000);
   });
}

이것을 함수에서 사용하고 싶지만 반환 값을 기다려야 합니다. 콜백을 사용하면 다음과 같이 할 수 있습니다. -

function useGetHundred() {
   getHundred().then((value) => {
      console.log(value);
   })
}

그러나 반환된 데이터에서 실행할 콜백을 불필요하게 생성해야 합니다. 대신 async await를 사용하여 이 코드를 단순화할 수 있습니다. −

예시

// Declare an async function. When this function is called, it'll also return a Promise
// But inside this function any async calls can be made synchronous using await keyword
async function useGetHundredAsync() {
   // wait for the getHundred promise to resolve then store its value in value.
   let value = await getHundred();
   console.log(value)
}

출력

100