【发布时间】:2016-04-06 16:42:19
【问题描述】:
有没有办法使用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 事件:
@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');
});
}
}
所以,当我打电话给myMethod() 时,我期望的是这个日志序列:
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
【问题讨论】:
标签: angular