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 {} …Run Code Online (Sandbox Code Playgroud)