ホームページ >ウェブフロントエンド >jsチュートリアル >Async/Await 関数が依然として Promise を返すのはなぜですか?
コード内の getJSON 関数は、async/await 構文を使用する非同期関数です。質問が正しく述べているように、すべての非同期関数は Promise オブジェクトを返します。その後、await 演算子を使用して、Promise が解決されるか拒否されるまで関数の実行を一時停止します。
ただし、console.log(getJSON()) を使用して非同期関数の結果を直接ログに記録することはできません。これは、await は関数の実行の一時停止を解除するだけであり、その結果で Promise を解決できるようにするためです。ただし、関数自体は、ラップされていない結果ではなく、基になる Promise を返します。
Promise の結果にアクセスするには、先ほど説明したように then() メソッドを使用するか、別のメソッド内で await を再度使用する必要があります。非同期関数。あなたの場合、 getJSON().then(json => console.log(json)) は、 getJSON.
によって返された Promise に then ハンドラーをチェーンしているため、結果 { foo: 'bar' } をログに記録します。回答で述べたように、この動作は Promise モデルの基本です。 Promise は、将来の不特定の時点で解決される可能性がある非同期操作を表します。 then() メソッドを使用すると、Promise が解決されたときに実行するアクションを指定できます。
await を使用する場合でも、非同期関数は常に Promise を返すことを理解することで、アプリケーションで非同期コードを正しく処理して使用できるようになります。 .
以上がAsync/Await 関数が依然として Promise を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。