Обещания в javascript — это обещания в реальной жизни. вы обещаете кому-то, что сделаете что-то в будущем или сейчас. и будет 2 результата этого обещания. Либо обещание будет выполнено, либо обещание не будет выполнено.

Такое же поведение проявляется и в javascript.

Давайте разберемся в этом, используя разговор мамы и ребенка.

1) Сын обещает своей матери, мать, я обещаю, что уберу свой дом.

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

2) Теперь сын выполняет свое обещание и убирает комнату, обещание выполнено, он идет играть.

3) Сын не выполняет своего обещания и не убирает комнату, а идет в стирку.

Таким образом, в основном обещание - это действие, которое будет выполнено в будущем и гарантированно вернется с результатом (пройдено или неудачно).

Поэтому обещание будет иметь три состояния: ожидание, решение или отклонение.

Как создать обещание в javascript

var cleanedtheroom = false
var promise = new Promise(function(resolve,reject){
    if(cleanedtheroom) {
      resolve("You go to Play, Hurray!");
    } else {
      reject("You have to go to Laundry,Ahh!");
    }
})

Итак, мы создали обещание, которое приводит к разрешенному или отклоненному состоянию.

Promise имеет 3 метода-прототипа.

  1. Promise.prototype.catch(onRejected)
  2. Promise.prototype.then(onFulfilled, onRejected)
  3. Promise.prototype.finally(onFinally)
promise.then(function(message){
    console.log(message);
},function(err){
     console.log(err)
});

promise.catch(function(message){
    console.log("oh God, i have to do the laundry");
});
promise.finally(function(){
    console.log("I am happy either way.");
});

Таким образом, промисы в java-скрипте помогают нам писать асинхронный или блокирующий код.