Aký je rozdiel medzi Promise.any a Promise.race?
Frontend
* Funkcia prijíma pole sľubov (predpokladáme, že nie je prázdne) a vracia sľub. * Ak sa niektoré z odovzdaných sľubov vyrieši (úspešne sa vykoná), potom sa vracajúci sľub vyrieši touto hodnotou. * Ak sa viacero sľubov úspešne dokončí, tak sa vracajúci sľub * vyrieši * s prvou úspešnou hodnotou, bez ohľadu na poradie sľubov v poli. * Ak sú všetky odovzdané sľuby zamietnuté, tak sa vracajúci sľub zamietne chybou typu AggregateError, ktorá zoskupí všetky chyby, pričom zohľadní poradie sľubov. * AggregateError možno vytvoriť takto: new AggregateError(errors, 'No Promise in any was resolved') function any(promises) { // váš kód tu }
Prečo sa chyby v funkcii any nemôžu pridávať cez push, ale je potrebné ich zapisovať podľa indexu?
Čo sa stane, ak bude jedna z promises odmietnutá vo funkcii sumPromises?
Čo sa stane, ak do funkcie sumPromises ne odovzdáte žiadnu sľub?
Aký je rozdiel medzi Promise.all a Promise.allSettled?
Čo sa stane, ak odovzdáte prázdny zoznam funkcií do compose?
Implementujte funkciu sumPromises, ktorá prijíma sľuby ako argumenty a vracia súčet ich výsledkov. Funkcia môže prijať ľubovoľný počet argumentov. Môžete použiť akékoľvek API sľubov.
Implementujte funkciu isMonotonic, ktorá prijíma pole čísel a určuje, či je monotonické (rastúce alebo klesajúce). Vráti true, ak je pole monotonické, inak false. Implementujte s lineárnou zložitostí O(n).
Prečo môže byť metóda apply v implementácii runOnce potrebná?
Implementujte funkciu compose, ktorá prijíma variabilný počet funkcií a vracia novú funkciu. Výsledok každej funkcie sa prenáša na ďalšiu.
Implementujte obalno funkciu runOnce, ktorá prijíma funkciu a vracia novú funkciu. Nová funkcia môže byť volaná iba raz, všetky ďalšie volania vracajú undefined. Obalovaná funkcia môže prijímať argumenty a vracať výsledok.
Poznáš pattern pipe? Čo sa odlišuje od compose?
Ktorá možnosť bude rýchlejšia: cez Promise.all alebo cez cyklus s await na každom kroku? Prečo?
Na čo je potrebný čítač rejectedCount? Prečo jednoducho nepozrieme na dĺžku poľa errors?