To první je asi jasný. To druhý je jenom "jakože paralelní" v JS stylu. Od serializovaných awaitů by se to poznalo tak, že
await sleep(1)
await sleep(1)
await sleep(1)
by netrvalo ~ tři sekundy, ale ~ jednu.
To druhé v JS jde implementovat, ale musí se to (AFAIK) udělat ručně přes Promise.all()
O to právě jde, await čeká na splnění promisu. Když použiji analogii s vlákny, await odpovídá join.
To druhé v JS jde implementovat, ale musí se to (AFAIK) udělat ručně přes Promise.all()
nemusí, můžeš nejdřív vytvořit všechny tři promisy a až potom awaitovat (odpovídá joinování vláken).
let p1 = sleep(1)
let p2 = sleep(1)
let p3 = sleep(1)
await p1;
await p2;
await p3;
Promise.all dělá přibližně to stejné.
přečti dokumentaci k await, je hodně krátká, mohl bys to vládnout.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/await