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

Javascript의 비동기 호출에서 응답을 반환하는 방법은 무엇입니까?

<시간/>

javascript의 비동기 호출에서 응답을 반환하는 방법에는 여러 가지가 있습니다. 먼저 문제를 이해합시다. 비동기식이며 일정 시간 후에 데이터를 제공하는 foo라는 함수가 있다고 가정해 보겠습니다. 2가지 방법으로 이를 수행할 수 있습니다. 데이터로 실행할 준비가 되었을 때 호출할 콜백을 수락할 수 있습니다. 또는 약속을 반환할 수 있습니다.

예를 들어, setTimeout 함수는 콜백을 수락하고 고정된 시간 후에 실행합니다. 따라서 첫 번째 접근 방식을 사용한다고 가정하면 setTimeout에서 함수를 전달할 수 있습니다.

예시

function myFunc(cb) {
   setTimeout(() => cb(100), 1000);
}
myFunc((a) => console.log(a))

출력

100

이것은 1000ms 후에 실행될 콜백과 함께 setTimeout 함수를 호출할 것입니다. 해당 함수가 실행되면 setTimeout의 콜백에서 반환된 값으로 전달된 callback(cb)을 호출합니다.

약속 사용

약속을 사용하여 이 작업을 수행할 수도 있습니다. 비동기 함수를 약속으로 래핑하고 함수의 반환 값으로 이 약속을 해결합니다. then 메서드를 연결하고 콜백을 전달하여 비동기 함수에서 반환된 값을 사용할 수 있습니다.

,

예시

new Promise(resolve => setTimeout(() => resolve(100), 1000))
   .then(console.log)

출력

100