JavaScript-däki promisalaryň ýagdaýlary

Promisa üç ýagdaýyň biri içinde bolup biler. Promisa döredilende garawulda (pending) bolýar, soň ýerine ýetirilen (fulfilled) ýagdaýyna geçip, alynan netijäni gaýtaryp biler, ýa-da ret edilen (rejected) ýagdaýyna geçip, ret etmegiň sebäbini gaýtaryp biler. Aşakdaky kody işledip, bir ýagdaýdan beýlekisine geçmegi synlap görüp bilersiňiz:

javascriptlet promise = new Promise(function(resolve, reject) {
  setTimeout(function() {
    let isError = false; // ýa-da true ýa-da false goýuň
    
    if (!isError) {
      resolve([1, 2, 3, 4, 5]);
    } else {
      reject('promisa içinde säwlik');
    }
  }, 3000);
});

setInterval(function() {
  console.log(promise); // her sekuntda promisany konsola çykarýarys
}, 1000);

fulfilled we rejected ýagdaýlarynyň üýtmeýändigini ýadyňyzdan çykarmaň: eger promisa bu ýagdaýlaryň birine geçen bolsa, beýlekisine geçip bilmez. Geliň mysala seredeliň. Aşakdaky kodda reject çagyryşy ir, şonuň üçin resolve çagyryşy üns berilmez:

javascriptlet promise = new Promise(function(resolve, reject) {
  setTimeout(() => reject(new Error('säwlik')), 1000);
  setTimeout(() => resolve('üns berilmedik'), 2000);
});
Задание 1

Birnäçe wagt soň üstünlik bilen ýerine ýetiriljek promisa düzüň. Ony konsola çykaryň we onuň başlangyç ýagdaýyny we tamamlanan ýagdaýyny öwreniň.

Задание 2

Birnäçe wagt soň şowsuzlyk bilen ýerine ýetiriljek promisa düzüň. Ony konsola çykaryň we onuň başlangyç ýagdaýyny we tamamlanan ýagdaýyny öwreniň.