Обещания в JavaScript похожи на обработку исключений в Java? - PullRequest
0 голосов
/ 26 августа 2018

Так же, как try (), catch () и throw () в Java как обработка исключений, так же, как then () и catch () в JavaScript как обещание !?Просто начинающий задает несколько вопросов.Пожалуйста, не судите.xD

Ответы [ 4 ]

0 голосов
/ 26 августа 2018

Нет, они совсем другие.Обработка исключений обрабатывает исключения.Обещания - это способ вернуть значения и воздействовать на них в асинхронной среде, как в 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 .

0 голосов
/ 26 августа 2018

try/catch обнаружение самой ошибки и передача управления на отлов части. этот синтаксис существует и в js.

но в then/catch вы должны самостоятельно уведомить о возникновении ошибки (с помощью вызова reject). Это означает, что вы можете уведомить error, когда узнаете, что произошла ошибка. эта ошибка может быть реальной или не реальной ошибкой (программирование / логическая ошибка).

0 голосов
/ 26 августа 2018

Обещания и обработка исключений различны, они не одинаковы.В обещаниях javascript вы можете отказаться от использования. затем , чтобы узнать, когда функция завершила свое выполнение, это помогает узнать, когда асинхронные функции завершили свое выполнение, и javascript также предоставляет поддержку try / catch, как вы знаетекак у java.

0 голосов
/ 26 августа 2018

Не совсем .. В JavaScript у нас также есть блок try / catch.

Основными преимуществами Promises в JavaScript являются такие вещи, как Chaining.

Эквивалентом Promises в Java является CompletableFuture .читать о:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...