方法 1: 問題ありません
方法 2: 一緒に出力されますが、なぜですか? (待ち時間なし)
すべてのコード
认证0级讲师
言わせてください。 await は async 宣言の関数コンテキストでのみ使用できます 以下に示すように、forEach では await を直接使用することはできません。 リーリー
test をコールバック関数として渡すと、sleep メソッドが同期的に実行され、await は引き続き有効ですが、同時に有効になるだけです。したがって、後続の関数は同じ時間待機した後、まとめて実行されます。
async 非同期ループを実行する場合は、for ... of ... または Promise.all() を使用するのが最善です
言わせてください。
注意深く見てみると、あなたの問題は別の状況であることがわかりました。await は async 宣言の関数コンテキストでのみ使用できます 以下に示すように、forEach では await を直接使用することはできません。 リーリー
test をコールバック関数として渡すと、sleep メソッドが同期的に実行され、await は引き続き有効ですが、同時に有効になるだけです。したがって、後続の関数は同じ時間待機した後、まとめて実行されます。
async 非同期ループを実行する場合は、for ... of ... または Promise.all() を使用するのが最善です