我正在尝试实现简单zone.afterTask
和beforeTask
钩子,但尽管代码没有抛出任何错误,但这些方法永远不会被调用。
我在 github 中搜索了 Zone repo,除了示例中使用的方法之外,在源代码中找不到对这些方法的任何引用。计数示例确实使用afterTask
,beforeTask
但我设置了一个调试器,并看到这些方法也从未在他们的示例中被调用。
看起来这些方法已被弃用,如果不是,请告诉我我做错了什么。
这是我的代码 -
import { Component } from 'angular2/core';
@Component({
template: `
<div>
<p>Basic use of Zone</p>
<button (click)="startTask()">Start Task</button>
<p> Time taken {{timeTaken}}</p>
</div>
`
})
export class HelloZone {
timeTaken: any;
task1(){
for (let i = 0; i < 1e5; i++);
}
startTask() {
let startTime;
let myZone = Zone.parent.fork({
beforeTask: function() {
startTime = new Date();
},
afterTask: function() {
this.timeTaken = new Date() - startTime;
}
});
myZone.run(function(){
this.task1();
setTimeout(this.task1, 2000);
this.task1();
}.bind(this));
}
}