私はthis articleを読んでいたのですが、最初のスニペットではなぜseconde wait()
が最初のwait()
を待っていたのですが、2番目のスニペットでは2つwait()
asyncを実行しますか?あなたの最初の関数でJavaScriptはいつ実際に待っていますか?
async function series() {
await wait(500);
await wait(500);
return "done!";
}
async function parallel() {
const wait1 = wait(500);
const wait2 = wait(500);
await wait1;
await wait2;
return "done!";
}
function wait(ms) {
return new Promise(r => setTimeout(r, ms));
}
あなたはそれを呼び出すときにwait()を開始します。 「シリーズ」では、それを呼び出してそれを待ってから呼び出し、もう一度それを待ちます。 "並列"では、一度に2つのwait()を呼び出し、次にそれらを待っています。だから両方が同時に始まった。 –
@korvenは 'const wait1 = wait(500);' 'const wait2 = wait(500);の前にこの' setTimeout'を既に開始してはいけません。 '実行されますか? – Blake
なぜ私は決して「やらない」! 'series()'や 'parallel()'を実行しているときにFirefoxコンソールにログを記録しますか? – Marecky