Станы промісу ў JavaScript

Проміс можа знаходзіцца ў адным з трох станаў. Пры стварэнні проміс знаходзіцца ў чаканні (pending), а затым можа стаць выкананым (fulfilled), вярнуўшы атрыманы вынік, або адхіленым (rejected), вярнуўшы прычыну адмовы. Вы можаце паглядзець пераход з аднаго стану ў іншы, запусціўшы наступны код:

javascriptlet 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 будзе праігнараваны:

javascriptlet promise = new Promise(function(resolve, reject) {
  setTimeout(() => reject(new Error('error')), 1000);
  setTimeout(() => resolve('ignored'), 2000);
});
Задание 1

Зрабіце проміс, які выканаецца з поспехам праз некаторы час. Вывядзіце яго ў кансоль і вывучыце яго пачатковы стан і завершаны.

Задание 2

Зрабіце проміс, які выканаецца з няўдачай праз некаторы час. Вывядзіце яго ў кансоль і вывучыце яго пачатковы стан і завершаны.