非同期関数の暗黙的な Promise
JavaScript では、非同期関数は、Promise が完了してその値を返すのを非同期に待機できる関数です。ただし、よくある誤解は、非同期関数は返される値に対して暗黙的に Promise を返すということです。
戻り値を理解する
非同期関数は暗黙的に返されるように見えるかもしれませんが、お約束ですが、これは完全に正確ではありません。非同期関数の戻り値は、次の 2 つのいずれかになります。
非 Promise 値の例:
async function increment(num) { return num + 1; } increment(3).then(num => console.log(num)); // Logs: 4
ここでは、async 関数から数値を返します。ただし、出力は .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 である場合は、そのまま残されます。この動作は従来の return ステートメントとは異なりますが、ES6 のジェネレーターの基本原則と一致しています。
以上がJavaScript の非同期関数は常に Promise を返しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。