ホームページ >ウェブフロントエンド >jsチュートリアル >非同期関数は、明示的な戻り値がなくても、常に Promise を返しますか?
非同期関数における Promise の暗黙的な戻り
非同期関数は await 式の値を直接返すという想定に反して、実際には常に戻り値を返します。約束。明示的な return ステートメントが存在しない場合、返される値は自動的に Promise にラップされます。これは、非 Promise を含むすべての戻り値に当てはまります。
例:
async function increment(num) { return num + 1; } increment(3).then(num => console.log(num)); // Logs 4
このシナリオでは、数値が返されても、プロミス内にカプセル化されます。これは、then() メソッドを通じて戻り値にアクセスするときに明らかです。
その他のケース:
Exception:
このルールの例外は、Promise が非同期関数内から明示的に返された場合に発生します。このような場合、Promise は再ラップされません。
例:
async function increment(num) { return new Promise(resolve => resolve(num + 1)); } increment(3).then(num => console.log(num)); // Logs 4
結論:
whileこの動作は、従来の JavaScript の return ステートメントから逸脱する可能性がありますが、ES6 のジェネレーターの概念と一致しています。 return ステートメントとしての正確な値。
以上が非同期関数は、明示的な戻り値がなくても、常に Promise を返しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。