setTimeout/ は関数呼び出しの前に遅延を追加しますが、 async/awaitは約束の上にある構文糖衣であり、呼び出しが完了した後に実行するコードをチェーンする方法であるため、それらは異なります。
setTimeout にはひどいエラー処理特性があるため、すべてのコードで次のことをお勧めします。
let wait = ms => new Promise(resolve => setTimeout(resolve, ms));
setTimeout二度と直接電話しないでください。
コードは次のようになります。
let foo = async () => {
await wait(2000);
await this._doSomething();
}
終了するまでfoo待機しdoSomethingます。これは通常は望ましいことですが、コンテキストがなければ、何を望んでいるのかを知るのは困難です。doSomething他のコードと並行して実行する場合は、次のことをお勧めします。
async () => { await Promise.all([foo(), this._otherCode()]); };
同じ場所でエラーを結合してキャプチャします。
本当に起動して忘れ_doSomethingて、それを待たないつもりだった場合は、を失う可能性がありますが、awaitエラーを試行/キャッチする必要があります。
async () => {
let spinoff = async () => { try { await foo(); } catch (e) { console.log(e); } };
spinoff(); // no await!
}
ただし、そのパターンは微妙で見落としやすいため、お勧めしません。