唯一能真正说明所有问题的是,我最近重构了大约10,000行代码,并且该错误在其中途出现了一段时间。这是有角度的。我知道如何兑现承诺。我正在使用错误处理程序尝试捕获它,但是那没有用,我也尝试过:
window.addEventListener('unhandledrejection', function (promiseRejectionEvent) {
console.log(promiseRejectionEvent);
console.log('here!!!!!')
});
window.onerror = function (promiseRejectionEvent) {
console.log(promiseRejectionEvent);
console.log('AHHHH')
};
这些都没有发现错误。我不知道这个错误是从哪里来的。每当我重新加载页面时,它就会出现。
出于真正的好奇心,我尝试转到chrome中的链接,它指向...所以不是很有帮助。
在Firefox中不会发生此错误。
答案 0 :(得分:1)
消息Uncaught (in promise)
是zone.js的一部分:
https://github.com/angular/zone.js/blob/master/lib/common/promise.ts#L194
使用chrome开发工具,在所有文件(cmd / ctrl + shift + f)中搜索此文本,或将(cmd / ctrl + p)跳转到zone.js并找到“未捕获”。命中断点后,放置一个断点,重新加载页面并检查调用堆栈。
希望这会为您指明正确的方向。
答案 1 :(得分:0)
该错误告诉您有错误,但是您没有发现。您很可能可以检查负责路由器,以获取路由/app/outbound/cell-dial
或与此相关的任何路由保护功能。
有关路由的更多信息,尤其是有关路由器防护的路由:https://angular.io/guide/router
其他选项是:
// Delete
rm -rf node_modules/
npm install
逐步检查您上次提交/合并/拉出时的回购差异
检查您的版本,因为您的依赖版本可能与之前未正确设置的版本不同。
一般来说,这是您可以捕获它的方式(您可能已经知道,但是为了防万一,我还是提到它):
getAllPosts().then(response => {
console.log(response);
}).catch(e => {
console.log(e);
});
更多信息:https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Promise/catch
或使用async / await:
//some async function
try {
let response = await getAllPosts();
} catch(e) {
console.log(e);
}
答案 2 :(得分:0)
尝试在隐身模式下运行代码。
我找到了答案,但并不令人满意。这是一个Microsoft Office扩展,它以某种方式注入了被zone.js捕获一半的东西,但不是。我不知道那是怎么回事。
发现错误:
如果您让Chrome在异常情况下暂停,则它将在此错误时停止。错误出在不是我项目中的content.js文件中,所以我说了“嗯...”。然后,通过右键单击“源”选项卡,转到文件的位置,发现错误是在Office扩展名中。因此,如果您得到此Uncaught (in promise) undefined
,是因为zone.js错误处理正在捕获该错误。我不知道如何,但是尝试在隐身模式下运行代码。