АКЦИЯ: бесплатные месячные курсы по созданию сайтов
на выбор: верстка, JavaScript, PHP или фреймворки. Сегодня последний день для записи! Жми!
⊗jsSpPrmSta 166 of 294 menu
НОВИНКА: Практика на Реальных Проектах и Работы в Портфолио. Бесплатный курс! Мы уже начали, но еще можно присоединится!

Состояния промиса в JavaScript

Промис может находится в одном из трех состояний. При создании промис находится в ожидании (pending), а затем может стать исполненным (fulfilled), вернув полученный результат, или отклоненным (rejected), вернув причину отказа. Вы можете посмотреть переход из одного состояния в другой, запустив следующий код:

let promise = new Promise(function(resolve, reject) { setTimeout(function() { let isError = false; // поставьте либо true, либо false if (!isError) { resolve([1, 2, 3, 4, 5]); } else { reject('error in promise'); } }, 3000); }); setInterval(function() { console.log(promise); // каждую секунду выводим промис в консоль }, 1000);

Учтите, что состояния fulfilled и rejected неизменны: если промис перешел в одно из этих состояний, то он уже не сможет перейти в другое. Давайте посмотрим на примере. В следующем коде вызов reject случится раньше, поэтому вызов resolve будет проигнорирован:

let promise = new Promise(function(resolve, reject) { setTimeout(() => reject(new Error('error')), 1000); setTimeout(() => resolve('ignored'), 2000); });

Сделайте промис, который выполнится с успехом через некоторое время. Выведите его в консоль и изучите его начальное состояние и завершенное.

Сделайте промис, который выполнится с неудачей через некоторое время. Выведите его в консоль и изучите его начальное состояние и завершенное.

enru