Нет, они совсем другие.Обработка исключений обрабатывает исключения.Обещания - это способ вернуть значения и воздействовать на них в асинхронной среде, как в JavaScript.
Предположим, вы хотите настроить окно подтверждения JS.Вы можете настроить диалоговое окно jQuery и вернуть да или нет, в зависимости от того, на какую кнопку нажал пользователь.Например:
function msgBoxConfirm(msgText, e) {
e.preventDefault(); // Cancel the default behavior
e.stopPropagation(); // Stop any other events from firing down the line
$('#myDialogDiv').html(msgText).dialog({
modal: true,
title: boxTitle,
buttons: {
'Yes': function() {
$(this).dialog('close');
return true;
},
'No': function() {
$(this).dialog('close');
return false;
}
}
});
}
Теперь вы вызываете функцию окна сообщения:
var retval = msgBoxConfirm('Do you really want to do that?', e);
if (!retval) {
//Do the no behavior
} else {
//Do the yes behavior
}
Вы обнаружите, что этот код будет продолжаться до того, как обнаружит значение retval
поэтому retval
будет иметь значение undefined
, когда вы оцените его с помощью if
.Вот что значит быть асинхронным;вызов вашей функции не ждет, пока функция не будет выполнена, прежде чем она продолжит работу, что может привести к всевозможному плохому поведению.
Обещания - это способ ожидания возврата значения до его проверки.Чтобы узнать, как правильно настроить этот пример с помощью обещаний, см. this .