gpt4 book ai didi

javascript - 为什么在使用默认的拒绝定义时我们会得到 Uncaught(在 promise 中),但在解决时却不是这样?

转载 作者:行者123 更新时间:2023-12-02 23:53:48 24 4
gpt4 key购买 nike

我在 Chrome 控制台中尝试了这两个代码 spinets:

此代码片段没有出现任何错误:

let promise = new Promise(function(resolve, reject) {
resolve ("nicely done!");
});

但是这个确实

let promise = new Promise(function(resolve, reject) {
reject ("Whoops!");
});

并说未捕获( promise )哎呀!

为什么?为什么JS引擎对reject和resolve的默认定义有不同的处理方式?

最佳答案

被拒绝的 promise 表示导致错误的失败操作:拒绝 promise 的值,在您的情况下为“Whoops”。不使用 .then(_, onReject).catch(onReject)try { wait Promise; 处理此 Promise; } 基本上意味着您忽略错误,有点像处理同步错误。

因此,平台必须有某种方式告诉开发人员出了问题,在节点中这将终止进程(尽管它会触发 process 上的事件,以便您可以作为最后处理)采取)。有关详细信息,节点平台可以处理此问题,请参阅 https://nodejs.org/api/process.html#process_event_unhandledrejection .

当然,在浏览器中终止进程意味着关闭选项卡或其他内容,因此您只会在控制台中收到错误。

关于javascript - 为什么在使用默认的拒绝定义时我们会得到 Uncaught(在 promise 中),但在解决时却不是这样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55520558/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com