Angular 未兑现的(承诺中的)未定义的
我在chrome中遇到以下错误,不知道它来自何方: 唯一真正告诉我的是我最近重构了大约10000行代码,这个错误出现在中间。这是有角度的。我知道如何抓住承诺,用棱角分明的语言。我正在使用错误处理程序尝试捕获它,但这不起作用,我也尝试了:Angular 未兑现的(承诺中的)未定义的,angular,typescript,google-chrome,promise,Angular,Typescript,Google Chrome,Promise,我在chrome中遇到以下错误,不知道它来自何方: 唯一真正告诉我的是我最近重构了大约10000行代码,这个错误出现在中间。这是有角度的。我知道如何抓住承诺,用棱角分明的语言。我正在使用错误处理程序尝试捕获它,但这不起作用,我也尝试了: window.addEventListener('unhandledrejection', function (promiseRejectionEvent) { console.log(promiseRejectionEvent); console.l
window.addEventListener('unhandledrejection', function (promiseRejectionEvent) {
console.log(promiseRejectionEvent);
console.log('here!!!!!')
});
window.onerror = function (promiseRejectionEvent) {
console.log(promiseRejectionEvent);
console.log('AHHHH')
};
两个人都没有发现错误。我不知道这个错误是从哪里来的。每次我重新加载页面时,它都会出现
出于真正的好奇,我试着去chrome中的链接,它指向。。。所以这不是很有帮助
此错误在firefox中不会发生。消息
Uncaught(承诺中)
是zone.js的一部分:
使用chrome开发工具,可以在所有文件(cmd/ctrl+shift+f)中搜索此文本,也可以跳转(cmd/ctrl+p)到zone.js并查找“Uncaught”。放置一个断点,重新加载页面,并在遇到断点时检查调用堆栈
希望这会给你指明正确的方向。错误告诉你有错误,但你没有抓住它。最可能的情况是,您可以检查负责路由器的路由
/app/outbound/cell dial
或与此相关的任何路由保护功能
有关路由的更多信息,尤其是有关路由器防护的信息:
其他选择将是:
- 使用重新安装依赖项
- 从上次提交/合并/拉取一步一步检查您的回购差异
- 检查您的版本,因为有可能您的依赖项版本与以前不同,但设置不正确
//some async function
try {
let response = await getAllPosts();
} catch(e) {
console.log(e);
}
尝试以匿名方式运行代码 我找到了答案,但不太令人满意。这是一个微软的Office扩展,不知何故注入了zone.js中一半的东西,但有点不一样。我不知道那是怎么发生的 查找错误:
如果在异常时使chrome暂停,则它将在此错误时停止。错误出现在content.js文件中,该文件不在我的项目中,所以我说“嗯…”。然后,我通过右键单击sources选项卡转到文件的位置,发现错误在Office扩展名中。因此,如果您得到了未捕获(承诺中)未定义的
,这是因为zone.js错误处理正在捕获它。我不知道如何操作,但请尝试以匿名方式运行您的代码。很抱歉,这里没有人能够帮助您。只是没有足够的信息。我真的认为没有人能告诉我如何调试这个。。。但是我很有希望把这篇文章发到这里,这样将来遇到这个奇怪错误的人会发现他并不是唯一一个悲伤的人。提示:你的错误在手机拨号的第一行代码中。我还想问,为什么一个不懂angular的人负责重构10000行代码……真的吗。。。。??我知道。那10000条线路中的大部分都是我建的。错误肯定不在手机拨号的第一行。这指向我的index.html文档。我想您是在prod模式下构建应用程序的。尝试使用设置为true的sourceMap标志构建它,并尝试从inspector调试代码。虽然不是真正正确,但我给了您分数,因为它为我指明了正确的方向。谢谢@SamuelCompson,希望您发现问题-有什么值得分享的吗?
getAllPosts().then(response => {
console.log(response);
}).catch(e => {
console.log(e);
});
//some async function
try {
let response = await getAllPosts();
} catch(e) {
console.log(e);
}