非同期関数は値ではなく Promise を返します
Joseph Gordon-Levitt
Joseph Gordon-Levitt 2023-10-19 18:54:01
0
2
444

async/await が Promise でどのように機能するかを理解しようとしています。

リーリー

私が理解しているところによると、 await はブロックしているはずであり、上記のコードでは、オブジェクトblを返すためにプリミティブtimestampを使用することを妨げているようです。その後、関数は元の値を返しますが、時間変数は元の値ではなく保留中の Promise に設定されます。私は何を取りこぼしたか?

Joseph Gordon-Levitt
Joseph Gordon-Levitt

全員に返信 (2)
P粉099985373

非同期プレフィックスは Promise のラッパーです。

リーリー

同じく

リーリー
いいねを押す+0
    P粉002023326

    async関数は常に Promise を返します。これは、非同期作業の完了を報告する方法です。別のasync関数内で使用している場合は、awaitを使用してその Promise が解決されるのを待つことができますが、非async関数内で (通常は最上位レベルまたはイベント ハンドラー内で)、Promise を直接使用する必要があります。例:

    リーリー

    ...ただし、これを JavaScript モジュールのトップレベルで実行すると、すべての最新の環境でモジュールのトップレベルawaitがサポートされるようになります。 リーリー

    (この Promise が拒否された場合、モジュールのロードは失敗することに注意してください。Promise が失敗してもモジュールが意味を持って動作する場合は、必ず

    try/catchプロミスの拒否を処理します。)


    それは

    明示的な Promise コールバック条件の形式で何かを明らかにする (またはしないかもしれない) ことによって、JavaScript エンジンがasync関数をどのように処理するかについてのアイデアを与えてくれます。フード:リーリー重要な注意事項:

    new Promise
      に渡す関数 (
    • promise executor関数) は、new Promiseによって同期的に呼び出されます。これが操作を開始する理由であり、web3.eth.getBlock
        を同期的に呼び出して作業を開始します。
      • Promise executor でスローされたエラー (など) は、
      new Promise
    • によって捕捉され、Promise の拒否に変換されます。
    • Promise コールバックでスローされたエラー (渡すthen
    • エラーなど) は捕捉され、拒否に変換されます。
    いいねを押す+0
      最新のダウンロード
      詳細>
      ウェブエフェクト
      公式サイト
      サイト素材
      フロントエンドテンプレート
      私たちについて 免責事項 Sitemap
      PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!