Takže naposledy: si mimo. Promise.all() odpáli promisy paralelne, awaited promises sú spracované sériovo. Ten tvoj kód:
let call1 = work1();
let call2 = work2();
result = [await call1, await call2]
je vadný - najprv sa počká na call1, potom sa spustí call2, nie naraz. Keď už googliš pičoviny na stack overflow, tak sa pozri aj do komentárov daného riešenia, aspoň sa nabudúce nestrápniš poučovaním o tomto, čo neovládaš.
Milý Vlado. Jste speciální. Protože jste speciální, JEN PRO VÁS ve svém volném čase jsem nachystal kód.
async function serial() {
await new Promise((res, rej) => {setTimeout(()=>{res()}, 1000);})
await new Promise((res, rej) => {setTimeout(()=>{res()}, 2000);})
await new Promise((res, rej) => {setTimeout(()=>{res()}, 3000);})
console.log("done");
}
serial(); run time ~ 6 seconds
async function parallel() {
let t1 = new Promise((res, rej) => {setTimeout(()=>{res('t1')}, 1000);})
let t2 = new Promise((res, rej) => {setTimeout(()=>{res('t2')}, 2000);})
let t3 = new Promise((res, rej) => {setTimeout(()=>{res('t3')}, 3000);})
console.log([await t1, await t2, await t3]);
}
parallel(); // run time ~ 3 seconds
//Node 10.11+//
Omlouvat se nemusíte. Důležité je, že se nešíří bludné informace.