Разница между Promise.all()Promise.any() и Promise.race()?

Разница между Promise.all(), Promise.any() и Promise.race()?

Расскажите про статический метод .allSettled()?

Расскажите про статический метод .allSettled()?

Promise.all()

Promise.all() принимает массив промисов и возвращает новый промис, который будет выполнен, когда все промисы в массиве будут выполнены успешно, или отклонен, когда хотя бы один промис из массива будет отклонен. Результат выполнения Promise.all() - это массив результатов выполнения всех переданных промисов в том порядке, в котором они были переданы. Для пустого массива сразу вернётся пустой результат.

Promise.all([promise1, promise2, promise3])
  .then(function (results) {
    console.log(results)
  })
  .catch(function (error) {
    console.error(error)
  })
Promise.allSettled()

Promise.allSettled() принимает массив промисов и возвращает новый промис, который будет выполнен, когда все промисы в массиве будут завершены, независимо от того, были ли они выполнены успешно или отклонены. Результат выполнения Promise.allSettled() - это массив объектов, представляющих результаты выполнения всех переданных промисов. Для пустого массива сразу вернётся пустой результат.

Promise.allSettled([promise1, promise2, promise3])
  .then(function (results) {
    console.log(results)
  })
  .catch(function (error) {
    console.error(error)
  })
Promise.any()

Promise.any() принимает массив промисов и возвращает новый промис, который будет выполнен, когда хотя бы один промис в массиве будет выполнен успешно. Результат выполнения Promise.any() - это результат выполнения первого успешно выполненного промиса. Для пустого массива вернётся ошибка.

Promise.any([promise1, promise2, promise3])
  .then(function (result) {
    console.log(result)
  })
  .catch(function (error) {
    console.error(error)
  })
Promise.race()

Promise.race() принимает массив промисов и возвращает новый промис, который будет выполнен, когда первый промис в массиве будет выполнен, независимо от того, был ли он выполнен успешно или отклонен. Результат выполнения Promise.race() - это результат выполнения первого завершенного промиса. Если передать в Promise.race пустой массив, то обращение зависнет в состоянии выполнения и не будет установлено ни на выполнение, ни на отказ.

Promise.race([promise1, promise2, promise3])
  .then(function (result) {
    console.log(result)
  })
  .catch(function (error) {
    console.error(error)
  })

Назад