Обещания в 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 метода-прототипа.
Promise.prototype.catch(onRejected)
Promise.prototype.then(onFulfilled, onRejected)
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-скрипте помогают нам писать асинхронный или блокирующий код.