84669 人が学習中
152542 人が学習中
20005 人が学習中
5487 人が学習中
7821 人が学習中
359900 人が学習中
3350 人が学習中
180660 人が学習中
48569 人が学習中
18603 人が学習中
40936 人が学習中
1549 人が学習中
1183 人が学習中
32909 人が学習中
async/await が Promise でどのように機能するかを理解しようとしています。
私が理解しているところによると、 await はブロックしているはずであり、上記のコードでは、オブジェクトblを返すためにプリミティブtimestampを使用することを妨げているようです。その後、関数は元の値を返しますが、時間変数は元の値ではなく保留中の Promise に設定されます。私は何を取りこぼしたか?
bl
timestamp
非同期プレフィックスは Promise のラッパーです。
同じく
async関数は常に Promise を返します。これは、非同期作業の完了を報告する方法です。別のasync関数内で使用している場合は、awaitを使用してその Promise が解決されるのを待つことができますが、非async関数内で (通常は最上位レベルまたはイベント ハンドラー内で)、Promise を直接使用する必要があります。例:
async
await
...ただし、これを JavaScript モジュールのトップレベルで実行すると、すべての最新の環境でモジュールのトップレベルawaitがサポートされるようになります。 リーリー
try/catchプロミスの拒否を処理します。)
/
プロミスの拒否を処理します。)
明示的な Promise コールバック条件の形式で何かを明らかにする (またはしないかもしれない) ことによって、JavaScript エンジンがasync関数をどのように処理するかについてのアイデアを与えてくれます。フード:リーリー重要な注意事項:
リーリー
関数) は、
これが操作を開始する理由であり、
Promise コールバックでスローされたエラー (渡す
非同期プレフィックスは Promise のラッパーです。
リーリー同じく
リーリー
リーリーasync
関数は常に Promise を返します。これは、非同期作業の完了を報告する方法です。別のasync
関数内で使用している場合は、await
を使用してその Promise が解決されるのを待つことができますが、非async
関数内で (通常は最上位レベルまたはイベント ハンドラー内で)、Promise を直接使用する必要があります。例:...ただし、これを JavaScript モジュールのトップレベルで実行すると、すべての最新の環境でモジュールのトップレベル
(この Promise が拒否された場合、モジュールのロードは失敗することに注意してください。Promise が失敗してもモジュールが意味を持って動作する場合は、必ずawait
がサポートされるようになります。 リーリーtry
/
catchプロミスの拒否を処理します。)
それは
明示的な Promise コールバック条件の形式で何かを明らかにする (またはしないかもしれない) ことによって、JavaScript エンジンがasync関数をどのように処理するかについてのアイデアを与えてくれます。フード:
new Promiseリーリー
重要な注意事項:に渡す関数 (- promise executor
によって捕捉され、Promise の拒否に変換されます。
エラーなど) は捕捉され、拒否に変換されます。
関数) は、
new Promiseによって同期的に呼び出されます。これが操作を開始する理由であり、
web3.eth.getBlockを同期的に呼び出して作業を開始します。
Promise executor でスローされたエラー (など) は、
new PromisePromise コールバックでスローされたエラー (渡す
then