ホームページ >ウェブフロントエンド >jsチュートリアル >非同期関数の戻り値は何ですか?また、それらは Promise にどのように関係しますか?
非同期関数: 戻り値と Promise について
非同期関数を使用すると同期スタイルでコードを作成できますが、本質的に Promise を返します。これにより、コードの戻り値に関する混乱が生じる可能性があります。
Promises: 概要
Promise は、非同期操作の最終的な完了または失敗を表すオブジェクトです。 。これらは 2 つの主要なメソッドを提供します:
非同期関数と Promises
非同期関数は、明示的に await キーワードを使用しない場合でも、常に Promise を返します。 。この Promise は、非同期操作の結果を表します。関数がエラーをスローした場合、Promise はそのエラーで拒否されます。
使用法:
コールバック関数を使用した Promise:
<code class="javascript">const myAsyncFunction = () => { return new Promise((resolve, reject) => { setTimeout(() => { resolve('Asynchronous value'); }, 1000); }); }; myAsyncFunction() .then(result => { console.log(`Callback Result: ${result}`); }) .catch(error => { console.log(`Error: ${error}`); });</code>
Async/Await の Promise:
<code class="javascript">async function myAsyncFunction() { const result = await new Promise((resolve, reject) => { setTimeout(() => { resolve('Asynchronous value'); }, 1000); }); return result; } myAsyncFunction() .then(result => { console.log(`Await Result: ${result}`); }) .catch(error => { console.log(`Error: ${error}`); });</code>
これらの例では、myAsyncFunction は 1 秒の遅延後に値 'Asynchronous value' で解決される Promise を返します。 。 then メソッドと catch メソッドは、それぞれ解決済みまたは拒否された状態を処理します。
Promise を返す
Promise 自体を変更せずに返したい場合は、単に次のようにします。 write:<code class="javascript">const myAsyncFunction = () => { return new Promise(...); };</code>
変更された値を返す
非同期関数から変更された値を返すには、then メソッド内で Promise の結果を処理して返す必要があります。変更された値。例:<code class="javascript">async function myAsyncFunction() { const result = await new Promise(...); return result.toUpperCase(); }</code>この関数は、結果の大文字バージョンで解決される Promise を返します。
以上が非同期関数の戻り値は何ですか?また、それらは Promise にどのように関係しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。