Angular2返回嵌套Observable的内部Observable

PBa*_*Jen 6 observable angular

我想使用observable在Angular2中进行多次http调用.每个可观察量取决于先前的可观察量.如果我想返回内部observable,那么我可以在父组件中订阅它,怎么能这样做呢?

这是我尝试过的,但我无法订阅父组件中的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();
        })
   }
}
Run Code Online (Sandbox Code Playgroud)

Ada*_*dam 8

你的问题是很难理解,因为你没有给太多的上下文,但它听起来就像你希望得到的结果observable3(),从返回observablesFn().现有return语句从嵌套的内部匿名函数返回,而不是最外层的范围.我认为你希望在这些方面做更多的事情.

observablesFn(){
  return observable1().map(data1 => {
    return observable2(data1).map(data2 => {
      return observable3(data1, data2);
    });
  });
}
Run Code Online (Sandbox Code Playgroud)

这将从而返回observablesFn(),而不是其嵌套的内部函数.

有必要使用.map而不是.subscribe,因为它返回一个可观察的,而不是订阅.