Care este diferența dintre Promise.any și Promise.race?
Frontend
* Funcția primește un array de promisiuni (presupunem că nu este gol) și returnează o promisiune. * Dacă una dintre promisiunile transmise se rezolvă (se finalizează cu succes), atunci promisiunea returnată se rezolvă cu această valoare. * Dacă mai multe promisiuni se finalizează cu succes, atunci promisiunea returnată * se rezolvă * cu prima valoare de succes, indiferent de ordinea promisiunilor din array. * Dacă toate promisiunile transmise sunt respinse, atunci promisiunea returnată este respinsă cu o eroare de tip AggregateError, care grupează toate erorile, ținând cont de ordinea promisiunilor. * AggregateError poate fi creat astfel: new AggregateError(errors, 'No Promise in any was resolved') function any(promises) { // codul tău aici }
Ce se întâmplă dacă unul dintre promisiuni este respins în funcția sumPromises?
Ce se întâmplă dacă nu se transmite nicio promisiune funcției sumPromises?
Care este diferența dintre Promise.all și Promise.allSettled?
De ce nu se pot adăuga erori în funcția any prin push, ci trebuie să fie scrise după index?
Ce se întâmplă dacă transmiți o listă goală de funcții în compose?
Implementați funcția sumPromises, care acceptă promisiuni ca argumente și returnează suma rezultatelor lor. Funcția poate accepta orice număr de argumente. Se pot folosi orice API-uri de promisiuni.
Implementați o funcție compose care acceptă un număr variabil de funcții și returnează o nouă funcție. Rezultatul fiecărei funcții este transmis următoarei.
Implementați funcția isMonotonic, care primește un array de numere și determină dacă acesta este monoton (în creștere sau în descreștere). Returnează true dacă array-ul este monoton, altfel false. Implementați cu complexitate liniară O(n).
De ce poate fi necesar metoda apply în implementarea runOnce?
Știi despre pattern-ul pipe? Cu ce diferă de compose?
Care variantă va fi mai rapidă: prin Promise.all sau printr-un ciclu cu await la fiecare pas? De ce?
Implementați o funcție wrapper runOnce care acceptă o funcție și returnează o funcție nouă. Funcția nouă poate fi apelată o singură dată, toate apelurile ulterioare returnează undefined. Funcția încapsulată poate accepta argumente și returna un rezultat.
La ce folosește contorul rejectedCount? De ce nu te uiți pur și simplu la lungimea array-ului errors?