ホームページ > ウェブフロントエンド > jsチュートリアル > 非同期 JavaScript 関数は常に Promise を返しますか?

非同期 JavaScript 関数は常に Promise を返しますか?

Patricia Arquette
リリース: 2024-12-23 16:20:12
オリジナル
315 人が閲覧しました

Do Async JavaScript Functions Always Return Promises?

非同期関数と暗黙的な Promise の戻り値

JavaScript では、async キーワードでマークされた非同期関数は暗黙的に Promise を返します。これは、非 Promise 値を明示的に返すか、何も返さない場合にも当てはまります。

Implicit Promise Wrapper

明示的に a を返さない場合Promise を使用すると、返される値は自動的に Promise でラップされます。

async function increment(num) {
  return num + 1;
}

// Logs: 4
increment(3).then(num => console.log(num));
ログイン後にコピー

これは、戻り値がは数値であるため、非同期処理の目的で Promise に変換されます。

Unwrapped Promises

Promise は自動アンラップします。つまり、非同期関数内からの値の Promise の場合、値の Promise を受け取ります (関数の Promise の Promise ではありません)。 value).

async function increment(num) {
  return defer(() => num + 1);
}

// Logs: 4
increment(3).then(num => console.log(num));
ログイン後にコピー

一貫性のない動作

非同期関数の動作は、非 Promise 値を明示的に返す場合と異なるため、確かに従来の return ステートメントと矛盾しているように見えることがあります。 。これは、非同期関数がジェネレーターと呼ばれる特別なタイプの関数を利用しており、常に return ステートメントと同じ値を返すとは限らないためです。

以上が非同期 JavaScript 関数は常に Promise を返しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート