Promise

«Promise (обещание) — объект, содержащий будущее значение асинхронной операции.»

Три состояния Promise

Создание Promise

const promise = new Promise((resolve, reject) => {
  if (allWentWell) {
    resolve('Всё прошло отлично!')
  } else {
    reject('Что-то пошло не так')
  }
})

Методы

// then() — обработка результата
promise.then(
  result => { /* успех */ },
  error  => { /* ошибка */ }
)

// catch() — обработка ошибки
promise.catch(error => alert(error))

// finally() — всегда выполняется
promise.finally(() => console.log('Готово'))

Promise.all()

Promise.all([promise1, promise2, promise3])
  .then(([data1, data2, data3]) => {
    // все три выполнились
  })
  .catch(err => {
    // любой один отклонён
  })