首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >JavaScript中的Promise是否类似于Java语言中的异常处理?

JavaScript中的Promise是否类似于Java语言中的异常处理?
EN

Stack Overflow用户
提问于 2018-08-26 13:37:04
回答 1查看 587关注 0票数 1

就像Java中的try()、catch()和throw()作为异常处理,就像JavaScript中的then()和catch()作为promise!?只是一个初学者在问一些问题。请不要评头论足。xD

EN

回答 1

Stack Overflow用户

发布于 2018-08-26 14:01:13

不,它们完全不同。异常处理处理异常。Promise是一种在异步环境中返回值并对其执行操作的方法,JavaScript就是这样。

假设您想要定制JS确认框。您可以设置一个jQuery对话框,并根据用户单击的按钮返回yes或no。如下所示:

代码语言:javascript
复制
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;
            }
        }
    });
}

现在,调用消息框函数:

代码语言:javascript
复制
var retval = msgBoxConfirm('Do you really want to do that?', e);
if (!retval) {
    //Do the no behavior
} else {
    //Do the yes behavior
}

您将发现,在找到retval的值之前,此代码将继续执行,因此当您使用ifretval求值时,它的值将为undefined。这就是异步的含义;对函数的调用不会等到函数执行完成后才继续执行,这可能会导致各种不好的行为。

Promise是一种在检查之前等待返回值的方法。要查看如何使用promises正确设置此示例,请参阅this

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52023489

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档