私は単純なフックを実装しようとしてzone.afterTask
いbeforeTask
ますが、コードはエラーをスローしていませんが、それらのメソッドが呼び出されることはありません。
githubでZone リポジトリを検索しましたが、例で使用されているものを除いて、ソース コードでこれらのメソッドへの参照が見つかりませんでした。カウントの例では使用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));
}
}