Angular2 返回嵌套 Observable 的内部 Observable

标签 angular 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();
        })
   }
}

最佳答案

你的问题很难理解,因为你没有给出太多的上下文,但听起来你正在寻找 observable3() 的结果以从 observablesFn() 返回。现有的 return 语句从嵌套的内部匿名函数返回,而不是从最外层的范围返回。我认为您希望按照这些思路做更多事情。

observablesFn(){
  return observable1().map(data1 => {
    return observable2(data1).map(data2 => {
      return observable3(data1, data2);
    });
  });
}

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

有必要使用 .map 而不是 .subscribe,因为它返回一个 observable,而不是一个订阅。

关于Angular2 返回嵌套 Observable 的内部 Observable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42237909/

相关文章:

rxjs - 使用 Subject.create 创建的主题无法取消订阅

c# - 在这种情况下最好实现 ObservableBase 还是有其他方法?

node.js - Nestjs 中的 Observables - 异步读取文件

css - 如何在不更改其基本模块 css 的情况下将 mat-list-item 水平对齐?

Angular 保护服务注入(inject)服务

angular - 带有多个选项的 mat-select 中的样式复选框

angularjs - Protractor 测试用例 : Process exited with error 1 的问题

javascript - 如果发出相同的可观察值,则取消延迟

angular - MatAutocomplete 与 observables

javascript - 如何在 tsconfig.json 中排除以 '.spec.ts' 结尾的文件