差不多2个月前有人帮我解决了异步问题,它工作得非常好(我已经添加了分配给它),但我的程序中仍然有这个代码,我不完全确定它的作用.
原始代码是:
constructor(private ngZone: NgZone) { }
ngOnInit() {
this.getPosts()
.subscribe(x => {
this.apidata = x;
this.ngZone.onMicrotaskEmpty.first().subscribe(() => {
this.largestHeight();
});
});
}
Run Code Online (Sandbox Code Playgroud)
现在很难获得关于这方面的文档,而且我已经在过去的两个月内尝试过.他们只是给出了一个定义,但不是真实的例子.实际的路线是this.ngZone.onMicrotaskEmpty.first().subscribe(()
1)因此ngZone基本上可以访问您正忙着的区域,我理解这70%
2)onMicrotaskEmpty "当前VM Turn中没有更多的微任务队列时通知".
3)first()我得到的这个方法的唯一解释来自w3school:"first()方法返回所选元素的第一个元素." 所以我不明白的是在上面的代码中,我选择了哪些元素.我尝试在这上面运行一个console.dir和.log,但我得到的只是[object Object].所以我想知道第一个什么元素?
4)subscribe()我真的不知道为什么这里有订阅.我的印象是你只能订阅observable的/ promises.你可以订阅任何可以改变的东西,然后在它发生变化时运行订阅代码块吗?如果是这样,以前的方法是什么改变触发订阅运行的方法?
我希望似乎我已经尝试并寻找上述答案,但似乎所有内容都是为那些不需要首先阅读它的人写的......:P
| 归档时间: |
|
| 查看次数: |
1023 次 |
| 最近记录: |