비동기 함수의 암시적 약속
JavaScript에서 비동기 함수는 약속이 완료되어 값을 반환할 때까지 비동기적으로 기다릴 수 있는 함수입니다. 그러나 일반적인 오해는 비동기 함수가 반환하는 값에 대한 약속을 암시적으로 반환한다는 것입니다.
반환 값 이해
비동기 함수가 암시적으로 반환하는 것처럼 보일 수도 있지만 약속, 이것은 완전히 정확하지 않습니다. 비동기 함수의 반환 값은 다음 두 가지 중 하나일 수 있습니다.
Promise 값이 아닌 예:
async function increment(num) { return num + 1; } increment(3).then(num => console.log(num)); // Logs: 4
여기서는 비동기 함수에서 숫자를 반환합니다. 그러나 출력은 .then()을 통해 검색되며 이는 값 4로 해결된 Promise임을 나타냅니다.
명시적 Promises:
만약 비동기 함수에서 명시적으로 Promise를 반환하는 경우, 우리는 해당 값에 대한 Promise를 받지만 promise.
async function increment(num) { return Promise.resolve(num + 1); } increment(3).then(num => console.log(num)); // Logs: 4
예외 사례:
결론
JavaScript의 비동기 함수는 Promise가 아닌 반환 값을 암시적으로 래핑합니다. 약속에. 그러나 반환 값이 이미 Promise인 경우에는 그대로 유지됩니다. 이 동작은 기존 반환 문과 다르지만 ES6의 생성기 기본 원칙과 일치합니다.
위 내용은 JavaScript의 비동기 함수는 항상 Promise를 반환합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!