我想使用observable在Angular2中进行多次http调用。每个可观察量取决于先前的可观察量。如果我想返回内部可观察对象,那么我可以在父组件中订阅它,如何做到这一点?
以下是我尝试过的内容,但我无法订阅父组件中的observable。
子组件:
observablesFn(){
observable1().subscribe(data1 => {
observable2().subcribe(data2 => {
//I want to return this observable (before subscription b/c I want to subscribe in the parent component)
return observable3();
})
}
}
答案 0 :(得分:8)
您的问题很难理解,因为您没有给出太多背景信息,但听起来您希望observable3()
的结果从observablesFn()
返回。现有的return
语句从嵌套的内部匿名函数返回,而不是最外层的范围。我认为您希望在这些方面做更多的事情。
observablesFn(){
return observable1().map(data1 => {
return observable2(data1).map(data2 => {
return observable3(data1, data2);
});
});
}
这将从observablesFn()
返回,而不是其嵌套的内部函数。
使用.map
而不是.subscribe
是必要的,因为它返回了一个可观察的,而不是订阅。