Sobes.tech
Middle

// Τι θα εμφανιστεί στην κονσόλα ; const p1 = Promise.resolve(1); const p2 = new Promise((_, reject) => setTimeout(() => reject("Error"), 100)); const p3 = Promise.resolve(3); Promise.all([p1, p2, p3]) .then(console.log) .catch(console.error); Promise.allSettled([p1, p2, p3]).then(console.log);

sobes.tech AI

Απάντηση από AI

Η κονσόλα θα εμφανίσει τα εξής:

  1. Η κλήση Promise.all([p1, p2, p3]) θα ολοκληρωθεί με σφάλμα, καθώς το p2 απορρίπτεται μετά από 100 ms με το μήνυμα "Error". Συνεπώς, στο μπλοκ .catch(console.error) θα εμφανιστεί:
Error
  1. Η κλήση Promise.allSettled([p1, p2, p3]) πάντα ολοκληρώνεται με επιτυχία, επιστρέφοντας έναν πίνακα με τα αποτελέσματα όλων των υποσχέσεων, ανεξάρτητα από την κατάσταση τους. Στην κονσόλα θα εμφανιστεί ένας πίνακας αντικειμένων:
[
  { status: "fulfilled", value: 1 },
  { status: "rejected", reason: "Error" },
  { status: "fulfilled", value: 3 }
]

Έτσι, αρχικά θα εμφανιστεί το σφάλμα από το Promise.all, και στη συνέχεια ο πίνακας αποτελεσμάτων από το Promise.allSettled.