我理解使用Observable我可以在请求完成后执行一个方法,但是我如何才能等到http get完成并在ng2 http中使用返回响应?
getAllUser(): Array<UserDTO> {
this.value = new Array<UserDTO>();
this.http.get("MY_URL")
.map(res => res.json())
.subscribe(
data => this.value = data,
err => console.log(err),
() => console.log("Completed")
);
return this.value;
}
返回时,“值”将为null,因为get是异步的。
您不应尝试使http调用行为同步。从来没有一个好主意。
在getAllUser
实现之前,它应该从函数中返回一个可观察到的值,并且调用代码应该进行订阅,而不是在方法本身内部创建订阅。
就像是
getAllUser(): Observable<UserDTO> {
return this.http.get("MY_URL")
.map(res => res.json());
}
在调用代码时,您应该订阅并做任何您想做的事情。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句