Angular2とZone.jsを使用してスケジュールされたタスクがあるかどうかを確認する方法はありますか?Angular2とZone.jsでスケジュールされたタスクがあるかどうか確認してください
はのは、私がこのコンポーネント
import...
@Component({...})
export class MyComponent {
public myMethod() {
console.log('enter my method');
setTimeout(function() { console.log('task1'); }, 1000);
setTimeout(function() { console.log('task2'); }, 1500);
}
}
を持っていると私は両方task1
とtask2
が完了したときに通知することとしましょう。私はこのようにonUnstable
とonStable
イベントにサブスクライブしてる私のアプリのコンポーネントで
:私は何を期待myMethod()
を呼び出すときに、そう
@Component({
selector: 'app',
directives: [MyComponent],
template: `<mycmp></mycmp>`
})
export class AppComponent {
constructor(private zone:NgZone) {
console.log('start app component constructor');
zone.onUnstable.subscribe(function(args){
console.log('enter unstable');
});
zone.onStable.subscribe(function(args){
console.log('enter stable');
});
}
}
は、ログのこのシーケンスです:
enter unstable
enter my method
task1
task2
enter stable
しかし私はこれを得る:
enter unstable
enter my method
enter stable
enter unstable
task1
enter stable
enter unstable
task2
enter stable
新しいマイクロタスクを作成
myMethod
を呼び出しすることができるイベントハンドラを含む非同期操作のそれぞれは、そのログがクリアされますが、すべての3つのタスクが完了したら、通知取得する方法はありますか? – Gigitsu