非同期関数と Promises
非同期操作を使用する場合、非同期関数と Promise がどのように相互作用するかを理解することが重要です。
非同期関数は常に戻りますPromises
通常の関数とは異なり、非同期関数は常に Promise を返し、非同期操作の完了を示します。これにより、シーケンシャル コードでの非同期操作の処理がより簡単になります。
例:
async function latestTime() { const bl = await web3.eth.getBlock('latest'); return bl.timestamp; }
プリミティブ値を返すか Promis を返すか
この関数はプリミティブ値 (bl.timestamp) を返しますが、最新時間() 関数自体は Promise を返します。これにより、戻り値にアクセスしようとするときに混乱が生じる可能性があります。
Promises の使用
返された Promise の解決された値にアクセスするには、then( ) メソッド:
latestTime().then((time) => { console.log(time); });
あるいは、最新の JavaScript 環境では、トップレベルのメソッドを使用できます。 await:
const time = await latestTime(); console.log(time);
明示的な Promise の処理
わかりやすくするために、Promise コールバックに関して非同期関数がどのように動作するかをより明示的に表現します。
function latestTime() { return new Promise((resolve, reject) => { web3.eth.getBlock('latest').then((bl) => { resolve(bl.timestamp); }) }); }
以上がAsync 関数と Promise は JavaScript でどのように連携しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。