- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
在 Angular2 中有没有办法为异步代码获得更好的调用堆栈?我一直认为跟踪 setTimeout()、发出的事件、Promises 等的执行上下文是 Zone 的优势之一?
我构建了一个 plunker 示例,它显示了一个常见的场景,无法跟踪错误。
我有以下示例场景:
@Component({
selector: 'my-component',
template: `
<div>
<button (click)="doSmth()">Cause an async error!</button>
</div>
`
})
export class MyComponent {
@Output() error = new EventEmitter<any>(true);
public doSmth(): void {
this.error.emit('Oh snap!');
}
}
@Component({
selector: 'my-app',
template: `
<div>
<my-component (error)="handleError($event)"></my-component>
</div>
`,
})
export class App {
private error = "";
public handleError(reason: any): void {
Promise.reject(reason)
}
}
@NgModule({
imports: [ BrowserModule ],
declarations: [ App, MyComponent ],
bootstrap: [ App ]
})
export class AppModule {}
笨蛋:https://embed.plnkr.co/rnkxRH9G0FzA3DcBHfKO/
这个片段会产生一个异步错误“Oh Snap!”单击按钮时。此错误将通过 EventEmitter 发出,该 EventEmitter 将在 App 组件中处理,这只会导致未处理的 Promise 拒绝。
我现在得到的调用栈是这样的:
Error: Oh Snap!
at resolvePromise (zone.js:538)
at Function.ZoneAwarePromise.reject (zone.js:594)
at App.handleError (app.ts:34)
at DebugAppView._View_App0._handle_error_3_0 (App.ngfactory.js:82) //not my file
at eval (core.umd.js:12718)
at eval (core.umd.js:9180)
at ZoneDelegate.invokeTask (zone.js:356)
at Object.onInvokeTask (core.umd.js:9236)
at ZoneDelegate.invokeTask (zone.js:355)
at Zone.runTask (zone.js:256)
这让我没有机会在更复杂的应用程序中追踪实际的错误触发源。
我还嵌入了“long-stack-trace-zone”脚本,完全没有效果。
问题是:我需要做什么才能获得更好的区域堆栈跟踪?或者根本不可能吗?
提前致谢。
最佳答案
解决方案是使用“Chrome DevTools”来中断异常。
为此,在 Chrome DevTools 中,您应该:
关于 Angular 2 : Better/Deeper Zone Stacks for Debugging,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39012652/
大家好,我知道这段代码的作用: 1.]我的第一个问题 x = 4 y = x 但是这个呢。为什么即使在这种情况下也使用相同的地址? x = 4 y = 4 id(x) 12345678 id(y) 1
我正在使用 SFML 2.3 来控制程序中的图形。我需要一个类才能访问窗口,即使该类不是最初创建窗口的类(没有所有权)也可以绘制它。例如。 Battle 类需要能够绘制战斗场景并在那里操作角色,但是
我不知道该如何描述?我认为如果你看看我制作的 jsfiddle 会更好.. 如您所见,某些 TR 元素上有悬停,如果 TD 已经有另一个 bgcoler,它必须更改为替代 bgcolor.. 它在前
我的意思是,虽然你可以这样做: $foo = "Yo dawg I herd you like $bar->baz"; 这个: $foo = "Yo dawg I herd you like $bar
首先。对不起我的标题,我已经考虑了十多分钟我要命名我的问题。但是我什么也没得到.. 在我的应用程序中,我有三个基本属于彼此的组件。 我有: Doors.js DoorsItem.js DoorsDet
我第一次尝试响应式编程,使用 bacon.js ,并遇到了一个让我很烦的奇怪的互动。我想出了这个事件链的一个工作版本,但是 hackish 的额外流操作使它从其余代码中脱颖而出——如您所见。 我发现
在 PhpStorm 中,如果我创建了一个对象,那么该对象的所有自动完成功能都可以正常工作: $object = new MyClass(); $object->getNa... 将自动完成 $obj
假设我想高效地从 xml 文档中选择所有 field 节点。该文档可能如下所示:
在 Angular2 中有没有办法为异步代码获得更好的调用堆栈?我一直认为跟踪 setTimeout()、发出的事件、Promises 等的执行上下文是 Zone 的优势之一? 我构建了一个 plun
我的模型相关如下: Post BELONGS_TO Parent Parent HAS_MANY ParentAdmin 现在,如果满足帖子的属性值,我希望找到所有帖子的所有父级管理员。等效的 sql
几年前,我和我的兄弟为 Mandelbrot 集编写了 Java 代码。昨天我想用它找到一些很酷的变焦,但当我进行更强烈的变焦时,我开始注意到一个问题(变焦值约为 1E14)。像素似乎被组合在一起,有
我已经在 StackOverflow 上阅读了许多 Tic Tac Toe 主题。我发现维基百科上的策略适合我的演示项目: A player can play perfect tic-tac-toe
这个问题在这里已经有了答案: Convert a JavaScript string in dot notation into an object reference (34 个答案) 关闭 5 年
除了开发人员工具网络面板提供的功能之外,我如何更深入地了解网络浏览器的网络级别发生了什么?例如,我现在正尝试在 Firefox (18.0.1) 中调试页面上的一个问题,在页面加载完成后加载“微调器”
我是一名优秀的程序员,十分优秀!