ホームページ > ウェブフロントエンド > jsチュートリアル > Promise でラップされているにもかかわらず、非同期関数からの戻り値にアクセスする方法

Promise でラップされているにもかかわらず、非同期関数からの戻り値にアクセスする方法

DDD
リリース: 2024-10-18 12:19:02
オリジナル
744 人が閲覧しました

How to Access Return Values from Async Functions Despite Being Wrapped in Promises?

非同期関数と戻り値

問題は、非同期関数は、値を返しているにもかかわらず、戻り値が返されていないため、そうでないように見えることが多いことです。という約束に包まれています。最終値にアクセスするには、

1 の 2 つのオプションがあります。 Promise チェーン

Promise の .then() メソッドをチェーンして、最終値を取得できます:

<code class="javascript">let allPosts = new Posts('https://jsonplaceholder.typicode.com/posts');

allPosts.init()
    .then(d => {
        console.log(allPosts.getPostById(4));
        // Here you can return the value as needed
    });</code>
ログイン後にコピー

2。 Async/Await

非同期関数内では、await を使用して関数の実行を一時停止し、Promise が解決されるまで待つことができます。

<code class="javascript">async function myFunc() {
    const postId = 4;
    await allPosts.init();

    // This is logging the correct value
    console.log('logging: ' + JSON.stringify(allPosts.getPostById(postId), null, 4));

    // Return the result using await
    return allPosts.getPostById(postId);
}

myFunc()
    .then(result => console.log(result))
    .catch(error => console.error(error));</code>
ログイン後にコピー

このようにして、次のことができます。コードの非同期の性質を正しく処理して、getPostById(id) の値を返す関数を作成します。

以上がPromise でラップされているにもかかわらず、非同期関数からの戻り値にアクセスする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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