Skip to main content
Практика завдань

Яка різниця між promise.all i promise.allsettled?

Вступ

У JavaScript обробка асинхронних операцій є важливою частиною програмування. Два методи, які часто використовуються для роботи з масивами промісів, це Promise.all та Promise.allSettled. У цьому документі ми розглянемо різницю між ними.

Promise.all

Опис

Promise.all приймає масив промісів і повертає новий проміс, який виконується, коли всі проміси в масиві виконані. Якщо будь-який з промісів відхилено, Promise.all також буде відхилено.

Приклад використання

javascript
const promise1 = Promise.resolve(3); const promise2 = 42; const promise3 = new Promise((resolve, reject) => { setTimeout(resolve, 100, 'foo'); }); Promise.all([promise1, promise2, promise3]).then((values) => { console.log(values); }); // Виведе: [3, 42, "foo"]

Promise.allSettled

Опис

Promise.allSettled також приймає масив промісів, але повертає новий проміс, який виконується, коли всі проміси завершені, незалежно від того, чи були вони виконані або відхилені. Результат буде масивом об'єктів, які описують статус кожного промісу.

Приклад використання

javascript
const promise1 = Promise.resolve(3); const promise2 = Promise.reject('error'); const promise3 = new Promise((resolve) => { setTimeout(resolve, 100, 'foo'); }); Promise.allSettled([promise1, promise2, promise3]).then((results) => { console.log(results); }); // Виведе: // [ // { status: "fulfilled", value: 3 }, // { status: "rejected", reason: "error" }, // { status: "fulfilled", value: "foo" } // ]

Основні відмінності

Статус промісів

  • Promise.all: Відхиляється, якщо будь-який з промісів відхилено.
  • Promise.allSettled: Завершується, коли всі проміси завершені, незалежно від їх статусу.

Результат

  • Promise.all: Повертає масив значень, якщо всі проміси виконані.
  • Promise.allSettled: Повертає масив об'єктів, які містять статус і значення/причину для кожного промісу.

Висновок

Розуміння різниці між Promise.all і Promise.allSettled є важливим для ефективної обробки асинхронних операцій у JavaScript. Вибір між ними залежить від того, чи потрібно вам обробляти лише успішні проміси або враховувати всі результати.

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.

Дочитали статтю?
Практика завдань