что мы думаем, когда слышим слово обещания. Это просто существительное, означающее, что мы даем гарантию того, что что-то произойдет точно или почти в будущем под нашим доверием.

JavaScript — это синхронный язык программирования, но мы можем заставить его функционировать как язык асинхронного программирования с помощью функций обратного вызова. Обещание может быть либо сохранено, либо нарушено. Если обещание выполняется, мы строим дальнейшие планы на основе результата нашего обещания, если оно нарушается, мы делаем новый план для решения проблемы.

Предположим, есть человек «А», который пообещал выполнить и сдать вам работу через неделю, но через неделю так и не появился. Итак, вы составили план изменения, чтобы завершить работу. Но человек «А» приходит с результатом через десять дней, когда вы уже приняли решение об изменении, поэтому нам не нужен результат «А».

1- Создание промисов в java-скрипте. Промис – это объект, представляющий завершение события или сбой асинхронной операции. Синтаксис для создания промисов в java-скрипте приведен ниже.

new Promise( /* executor */ function(resolve, reject) { ... } );

наш синтаксис обещания, в котором конструктор принимает функцию, известную как исполнитель. Функция-исполнитель принимает два параметра с именами resolve и reject, которые являются внутренними функциями. Обещания обычно используются в асинхронных операциях, таких как вызовы API, вызовы БД, вызовы ввода-вывода и т. д.,

Если асинхронные операции выполнены успешно, он возвращает ожидаемый результат, вызывая функцию разрешения создателем обещания. если он не удался, так как может произойти непредвиденная ошибка, он возвращает причины, вызывая функцию отклонения.

var promise_kept;
promise_kept = true;
our_promise = new Promise(function(resolve, reject) {
  if (promise_kept) {
    resolve("Plan for further actions");
  } else {
    reject("Make a alter plan");
  }
});
console.log(our_promise);

Пока обещание не будет разрешено, состояние обещания — «ожидание».

promise_kept = false;
our_promise2 = new Promise(function(resolve, reject) {
  if (promise_kept) {
    resolve("Plan for further actions");
  } else {
    reject("Make a alter plan");
  }
});
console.log(our_promise2);

Теперь мы знаем, что PromiseState может иметь pending, resolved или rejected. Когда обещание создается PromiseStateнаходится в состоянии pending и будет иметь PromiseResult как undefined до тех пор, пока обещание не станет либо resolved, либо rejected. Когда обещание находится в состояниях resolved или rejected, тогда говорят, что обещание находится в состоянии settled. Таким образом, обещание обычно переходит из состояния ожидания в состояние выполнено. состояние.

2. Понимание промисов в java-скрипте:Объект Promise имеет шесть статических методов и три метода экземпляра/прототипа. Здесь мы рассмотрим методы экземпляра, которые имеют три важных метода, таких как .then(), . catch(), .finally() , все эти методы назначают обработчики для различных переходов состояния промиса.

Методы прототипа:

Методы прототипа предназначены для повторения, и все эти методы применимы только к экземпляру объекта обещания. Все эти методы возвращают обещание в свою очередь. Поскольку мы уже знаем, что Promise создается, он находится в состоянии pending. Один или несколько из следующих трех методов будут запущены при расчете обещания в зависимости от того, являются ли они resolved или rejected.

Promise.prototype.catch(on_rejection)

Promise.prototype.then(on_resolve,on_rejection)

Promise.prototype.finally()

Если для обещания объявлено .finally(), то оно будет выполняться всякий раз, когда обещание равно settled, независимо от того, выполнено оно или отклонено.

let our_promise2 = new Promise((resolve, reject) => {
var x=true;
  //setTimeout() to perform async code.
  setTimeout( function() {
    if(x==true)
      resolve("Success!"); 
    else
      reject("Error happens");
   }, 250)
})

our_promise2.then((successMessage) => {
  console.log("resolved! " + successMessage)
});
our_promise2.catch((successMessage) => {
  console.log("rejected! " + successMessage)
});
our_promise2.finally(function() {
  console.log("Irrespective of resolve or reject this part will be executed");
});

если мы изменим «var x= false»в приведенном выше коде, чтобы он отклонил обещание,

Надеюсь, это поможет вам, ребята, как новичкам понять принцип и концепцию промисов в java-скрипте, а также то, как это работает. Только что потратил несколько минут, чтобы прочитать эту статью.😊