Czym różni się Promise.any od Promise.race?
Frontend
* Funkcja przyjmuje tablicę obietnic (zakładamy, że nie jest pusta) i zwraca obietnicę. * Jeśli któraś z przekazanych obietnic zostanie rozwiązana (z powodzeniem), to zwracana obietnica zostanie rozwiązana tym wartością. * Jeśli kilka obietnic zakończy się powodzeniem, to zwracana obietnica * zostanie rozwiązana * pierwszą udaną wartością, niezależnie od kolejności obietnic w tablicy. * Jeśli wszystkie przekazane obietnice zostaną odrzucone, to zwracana obietnica zostanie odrzucona z błędem typu AggregateError, który grupuje wszystkie błędy, uwzględniając kolejność obietnic. * AggregateError można tworzyć w ten sposób: new AggregateError(errors, 'No Promise in any was resolved') function any(promises) { // twój kod tutaj }
Co się stanie, jeśli jedna z obietnic zostanie odrzucona w funkcji sumPromises?
Czym różni się Promise.all od Promise.allSettled?
Co się stanie, jeśli nie przekażesz żadnej obietnicy do funkcji sumPromises?
Dlaczego błędy w funkcji any nie mogą być dodawane przez push, lecz trzeba je zapisywać po indeksie?
Co się stanie, jeśli przekażesz pustą listę funkcji do compose?
Zaimplementuj funkcję compose, która przyjmuje dowolną liczbę funkcji i zwraca nową funkcję. Wynik działania każdej funkcji jest przekazywany do następnej.
Zaimplementuj funkcję sumPromises, która przyjmuje jako argumenty obietnice i zwraca sumę ich wyników. Funkcja może przyjmować dowolną liczbę argumentów. Możesz używać dowolnych API obietnic.
Zaimplementuj funkcję isMonotonic, która przyjmuje tablicę liczb i określa, czy jest ona monotoniczna (rosnąca lub malejąca). Zwraca true, jeśli tablica jest monotoniczna, w przeciwnym razie false. Zaimplementuj złożoność liniową O(n).
Dlaczego metoda apply może być potrzebna w implementacji runOnce?
Zaimplementuj funkcję opakowującą runOnce, która przyjmuje funkcję i zwraca nową funkcję. Nowa funkcja może być wywołana tylko raz, wszystkie kolejne wywołania zwracają undefined. Opakowana funkcja może przyjmować argumenty i zwracać wynik.
Która opcja będzie szybsza: Promise.all czy pętla z await na każdym kroku? Dlaczego?
Czy znasz wzorzec pipe? Czym różni się od compose?
Do czego służy licznik rejectedCount? Dlaczego nie patrzeć po prostu na długość tablicy errors?