Ποια είναι η διαφορά μεταξύ Promise.any και Promise.race;
Frontend
* Η λειτουργία λαμβάνει έναν πίνακα υποσχέσεων (υποθέτουμε ότι δεν είναι άδειος) και επιστρέφει μια υπόσχεση. * Αν κάποια από τις δοσμένες υποσχέσεις επιλυθεί (εκτελεστεί με επιτυχία), τότε η επιστρεφόμενη υπόσχεση επιλύεται με αυτήν την τιμή. * Αν πολλές υποσχέσεις ολοκληρωθούν με επιτυχία, τότε η επιστρεφόμενη υπόσχεση * επιλύεται * με την πρώτη επιτυχημένη τιμή, ανεξάρτητα από τη σειρά των υποσχέσεων στον πίνακα. * Αν όλες οι δοσμένες υποσχέσεις απορριφθούν, τότε η επιστρεφόμενη υπόσχεση απορρίπτεται με ένα σφάλμα τύπου AggregateError, που ομαδοποιεί όλα τα σφάλματα, λαμβάνοντας υπόψη τη σειρά των υποσχέσεων. * Το AggregateError μπορεί να δημιουργηθεί ως εξής: new AggregateError(errors, 'No Promise in any was resolved') function any(promises) { // ο κώδικάς σας εδώ }
Τι θα συμβεί αν μια από τις υποσχέσεις απορριφθεί στη λειτουργία sumPromises;
Ποια είναι η διαφορά μεταξύ Promise.all και Promise.allSettled;
Τι θα συμβεί αν δεν περάσετε καμία υπόσχεση στη λειτουργία sumPromises;
Γιατί τα λάθη στη λειτουργία any δεν μπορούν να προστεθούν μέσω push, αλλά πρέπει να γραφούν με δείκτη;
Τι συμβαίνει αν περάσετε μια κενή λίστα λειτουργιών στο compose;
Υλοποιήστε τη λειτουργία sumPromises, η οποία δέχεται υποσχέσεις ως επιχειρήματα και επιστρέφει το άθροισμα των αποτελεσμάτων τους. Η λειτουργία μπορεί να δέχεται οποιονδήποτε αριθμό επιχειρημάτων. Μπορείτε να χρησιμοποιήσετε οποιοδήποτε API υποσχέσεων.
Υλοποιήστε μια συνάρτηση compose που δέχεται μεταβλητό αριθμό συναρτήσεων και επιστρέφει μια νέα συνάρτηση. Το αποτέλεσμα κάθε συνάρτησης περνάει στην επόμενη.
Υλοποιήστε τη συνάρτηση isMonotonic, η οποία δέχεται έναν πίνακα αριθμών και καθορίζει αν είναι μονοτονικός (αυξανόμενος ή φθίνων). Επιστρέφει true αν ο πίνακας είναι μονοτονικός, διαφορετικά false. Υλοποιήστε με γραμμική πολυπλοκότητα O(n).
Γιατί μπορεί να χρειαστεί η μέθοδος apply στην υλοποίηση του runOnce;
Ξέρεις το μοτίβο pipe; Πώς διαφέρει από το compose;
Ποια επιλογή θα είναι πιο γρήγορη: μέσω Promise.all ή μέσω βρόχου με await σε κάθε βήμα; Γιατί;
Υλοποιήστε μια λειτουργία runOnce που λαμβάνει μια λειτουργία και επιστρέφει μια νέα λειτουργία. Η νέα λειτουργία μπορεί να κληθεί μόνο μία φορά, όλες οι επόμενες κλήσεις επιστρέφουν undefined. Η τυλιγμένη λειτουργία μπορεί να δέχεται επιχειρήματα και να επιστρέφει αποτέλεσμα.
Για ποιο λόγο χρειάζεται ο μετρητής rejectedCount; Γιατί δεν κοιτάμε απλώς το μήκος του πίνακα errors;