비동기 함수의 암시적 약속 반환
비동기 함수가 Wait 식의 값을 직접 반환한다는 가정과 달리 실제로는 항상 반환을 반환합니다. 약속. 명시적인 return 문이 없는 경우 반환할 값은 Promise에 자동으로 래핑됩니다. 이는 약속되지 않은 값을 포함한 모든 반환 값에 적용됩니다.
예:
async function increment(num) { return num + 1; } increment(3).then(num => console.log(num)); // Logs 4
이 시나리오에서는 숫자가 반환되더라도 여전히 약속 안에 캡슐화되어 있습니다. 이는 then() 메서드를 통해 반환된 값에 액세스할 때 분명합니다.
기타 경우:
예외:
Promise가 비동기 함수 내에서 명시적으로 반환될 때 이 규칙의 예외가 발생합니다. 이러한 경우 Promise는 다시 포장되지 않습니다.
예:
async function increment(num) { return new Promise(resolve => resolve(num + 1)); } increment(3).then(num => console.log(num)); // Logs 4
결론:
동안 이 동작은 전통적인 JavaScript 반환 문에서 벗어날 수 있으며 ES6의 생성기 개념과 일치합니다. return 문으로 정확한 값을 반환합니다.
위 내용은 명시적인 반환이 없더라도 비동기 함수는 항상 Promise를 반환합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!