1

私は単純なフックを実装しようとしてzone.afterTaskbeforeTaskますが、コードはエラーをスローしていませんが、それらのメソッドが呼び出されることはありません。

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));
  }
}
4

1 に答える 1