ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript で非同期関数が常に Promise を返すのはなぜですか?
値の代わりに Promise を返す非同期関数
async/await プログラミングでは、非同期関数は常に Promise を返します。この Promise は、関数の非同期作業の最終的な完了を表します。
別の非同期コンテキストで非同期関数を呼び出す場合、await を使用して、Promise が安定するまで一時停止できます。ただし、非同期コンテキスト (多くの場合、トップレベルまたはイベント ハンドラー) では、Promise を直接使用する必要があります:
latestTime() .then(time => { console.log(time); }) .catch(error => { // Handle/report error });
最新の環境では、トップレベルの await がモジュール内でサポートされています:
const time = await latestTime();
より深く理解するために、非同期の明示的な Promise コールバック バージョンを調べてみましょうfunction:
function latestTime() { return new Promise((resolve, reject) => { web3.eth.getBlock('latest') .then(bl => { console.log(bl.timestamp); console.log(typeof bl.timestamp.then == 'function'); resolve(bl.timestamp); }) .catch(reject); }); }
このコールバック バージョン:
以上がJavaScript で非同期関数が常に Promise を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。