Promise 생성자 콜백의 동기화
Promise 생성의 맥락에서 Promise에 제공되는 콜백의 실행 시점이 궁금할 수 있습니다. 건설자. 이 질문을 자세히 살펴보겠습니다.
다음 스니펫을 고려하세요.
function doSomethingAsynchronous() { return new Promise((resolve) => { const result = doSomeWork(); setTimeout(() => { resolve(result); }, 100); }); }
이 Promise를 구성할 때 doSomeWork()가 호출되는 시점은 무엇입니까?
다음에 따라 ECMAScript 사양에서는 실행기 함수(생성자에 제공되는 콜백)가 호출됩니다. Promise 생성 시 동기적으로. 이는 콜백이 계속 실행되기 전에 Promise가 생성될 때 doSomeWork()가 즉시 실행된다는 것을 의미합니다. MDN에서는 다음과 같이 명시하고 있습니다.
실행자는(Promise가 생성되자마자) resolveFunc 및 recognitionFunc 함수를 인수로 사용하여 동기식으로 호출됩니다.
실행자 호출의 동기식 특성은 다음과 같습니다. 사양에 의해 보장됩니다. 예를 들어, 이 보장은 all 또는 race를 사용하여 여러 Promise를 구성할 때나 실행자에 동기식 부작용이 있을 때 관련이 있습니다.
위 내용은 Promise 생성자의 콜백은 언제 실행되나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!