从http post请求中获取数据后,我需要调用一个方法
服务:request.service.TS
get_categories(number){
this.http.post( url, body, {headers: headers, withCredentials:true})
.subscribe(
response => {
this.total = response.json();
}, error => {
}
);
}
组件:categories.TS
search_categories() {
this.get_categories(1);
//I need to call a Method here after get the data from response.json() !! e.g.: send_catagories();
}
仅当我更改为:
服务:request.service.TS
get_categories(number){
this.http.post( url, body, {headers: headers, withCredentials:true})
.subscribe(
response => {
this.total = response.json();
this.send_catagories(); //here works fine
}, error => {
}
);
}
但是我需要在调用后调用方法 send_catagories()
在组件内部 this.get_categories(1);
像这样
组件:categories.TS
search_categories() {
this.get_categories(1);
this.send_catagories(response);
}
我做错了什么?
原文由 Louise 发布,翻译遵循 CC BY-SA 4.0 许可协议
更新您的
get_categories()
方法以 返回 总数(包装在 observable 中):在
search_categories()
中,您可以订阅get_categories()
返回的 observable(或者您可以通过链接更多 RxJS 运算符来继续对其进行转换):请注意,您最后 只订阅 ONCE 。
就像我在评论中所说的那样,任何 observable 的
.subscribe()
方法都接受 3 个这样的回调:它们必须按此顺序通过。您不必通过所有三个。很多时候只实现了
nextCallback
: