Fel*_*lix 8 asynchronous ngoninit angular
如果我称之为ngOnInit(),使可观察到的调用来获取数据的功能,是ngOnInit的this.getSomething()调用还是异步或不ngOnInit等到this.getSomething()返回一个结果?基本上"doSomethingElse"在this.getSomething()完成之前或之后在ngOnInit()中执行了吗?
ngOnInit() {
this.getSomething();
doSomethingElse;
}
getSomething() {
this.someService.getData()
.subscribe(
result => {
this.result = result;
},
error => this.errorMessage = <any>error);
}
Run Code Online (Sandbox Code Playgroud)
Gün*_*uer 18
ngOnInit()本身不等待异步调用.您可以自己链接代码,它只在异步调用完成时执行.
例如,您输入的内容将在subscribe(...)数据到达时执行.
后面的代码subscribe(...)立即执行(异步调用完成之前).
有一些路由器生命周期钩子等待返回的promises或observable,但没有组件或指令生命周期钩子.
更新
确保完成后this.getSomething()执行代码后将getData()代码更改为
ngOnInit() {
this.getSomething()
.subscribe(result => {
// code to execute after the response arrived comes here
});
}
getSomething() {
return this.someService.getData() // add `return`
.map( // change to `map`
result => {
this.result = result;
},
// error => this.errorMessage = <any>error); // doesn't work with `map`
// (could be added to `catch(...)`
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21084 次 |
| 最近记录: |