arbeiten Ich versuche einfach zone.afterTask
und beforeTask
Haken zu implementieren, aber wenn Code keinen Fehler werfen, werden diese Methoden nicht genannt zu werden.zone.afterTask und zone.beforeTask Hook-Methoden nicht
Ich suchte Zone repo in github, und konnte keine Referenz zu diesen Methoden im Quellcode finden abgesehen von denen, die im Beispiel verwendet wird. counting example verwendet und beforeTask
, aber ich habe einen Debugger gesetzt und sah, dass diese Methoden auch in ihrem Beispiel nie aufgerufen werden.
Es sieht so aus, als ob diese Methoden veraltet sind, Wenn nicht bitte lassen Sie mich wissen, was ich falsch mache.
Hier ist mein Code -
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));
}
}
Das beantwortet teilweise meine Frage. Der Hauptgrund, dass sie nicht funktionieren, ist * nach v0.5 sind diese API's veraltet * – sapy
Ja, tatsächlich ;-) –