如何在订阅中获得观察者的结果?

开V

Observable对服务器有两个请求:

this.initService.__init__(res).subscribe((profile) => {
    console.log(profile); // It works
    this.initService.initializePeriod(profile).subscribe((period) => {
        console.log(period); // It does not work
    });

});

当第一次得到响应时,它会调用第二次,但我无法获得第二次订阅的结果。我知道,在这种情况下最好使用 Promises,但我需要将结果从第一个请求传递到第二个请求,承诺不允许这样做。

我尝试使用它,但警报消息不起作用:

 this.initService.__init__(res)
            .pipe(
              mergeMap(profile => this.initService.initializePeriod(profile)))
              .subscribe((response) => {
              alert('aa');

});

也试过这个:

this.initService.__init__(res)
              .mergeMap(profile => this.initService.initializePeriod(profile))
              .subscribe((response) => {
              alert('aa');
});
苏尼尔·辛格

您可以使用switchMaprxjs 运算符来链接可观察对象。

import { switchMap } from 'rxjs/operators';

this.initService.__init__(res)
.pipe(
   switchMap(profile=> this.initService.initializePeriod(profile))
).subscribe((period) => {
    console.log(period);
});

如果你想得到两者的回应,那么使用 mergeMap

import { mergeMap } from 'rxjs/operators';

this.initService.__init__(res)
.pipe(
   mergeMap(
      profile=> this.initService.initializePeriod(profile), 
     (profile, period) => {
       return [profile,period];
}
   )
).subscribe((response) => {
    console.log(response[0]); //profile
    console.log(response[1]); //period
});

工作副本在这里 - https://stackblitz.com/edit/typescript-wy26a7

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在RxJava中的自定义Observable中获得观察者取消订阅操作的通知

来自分类Dev

如何在订阅时获取观察者的“当前”值

来自分类Dev

如何在 flatMap 之后获得结果并抛出一个带有结果的新观察者?

来自分类Dev

如何在Rust中实现观察者模式?

来自分类Dev

Magento 2.0如何在观察者中重定向

来自分类Dev

如何在订阅者中使用多个可观察结果

来自分类Dev

AsyncTask中的可观察者/订阅者

来自分类Dev

如何在 RxJava2 中的自定义 Observable 中获得观察者处理操作的通知

来自分类Dev

如何在新订阅中将所有值发布到观察者?

来自分类Dev

如何立即从观察者那里获得价值?

来自分类Dev

如何立即从观察者那里获得价值?

来自分类Dev

Java观察者模式-如何在更新(通知)循环/迭代期间删除观察者?

来自分类Dev

无法订阅角度可观察者

来自分类Dev

在firebase中,如何删除所有观察者,而不是特定参考的观察者

来自分类Dev

如何从localStorage或Angular2中的其他观察者作为观察者返回?

来自分类Dev

如何在 Objective-C 中添加观察者并在 Swift 3 中触发通知

来自分类Dev

如何测试观察者?

来自分类Dev

如何在RxJava中的动态列表上创建观察者?

来自分类Dev

如何在Redux-Sagas中设置并随后取消多个观察者

来自分类Dev

如何在相同条件下的ng-show中减少AngularJS内部的观察者

来自分类Dev

如何在FragmentActivity的onBackPressed事件中传递数据或添加观察者

来自分类Dev

如何在Ober js属性中同时具有观察者和init

来自分类Dev

如何在 firebase 观察者路径中使用通配符?

来自分类Dev

从观察者返回结果 - Vue JS

来自分类Dev

如何合并多个可观察对象,并在单个订阅中获得全部结果

来自分类Dev

如何更改angularJS中的观察者顺序?

来自分类Dev

如何从阵列列表中删除__ob__:观察者?

来自分类Dev

如何使用Magento 2中的事件和观察者

来自分类Dev

如何设置观察者以监视magento中的客户?

Related 相关文章

  1. 1

    如何在RxJava中的自定义Observable中获得观察者取消订阅操作的通知

  2. 2

    如何在订阅时获取观察者的“当前”值

  3. 3

    如何在 flatMap 之后获得结果并抛出一个带有结果的新观察者?

  4. 4

    如何在Rust中实现观察者模式?

  5. 5

    Magento 2.0如何在观察者中重定向

  6. 6

    如何在订阅者中使用多个可观察结果

  7. 7

    AsyncTask中的可观察者/订阅者

  8. 8

    如何在 RxJava2 中的自定义 Observable 中获得观察者处理操作的通知

  9. 9

    如何在新订阅中将所有值发布到观察者?

  10. 10

    如何立即从观察者那里获得价值?

  11. 11

    如何立即从观察者那里获得价值?

  12. 12

    Java观察者模式-如何在更新(通知)循环/迭代期间删除观察者?

  13. 13

    无法订阅角度可观察者

  14. 14

    在firebase中,如何删除所有观察者,而不是特定参考的观察者

  15. 15

    如何从localStorage或Angular2中的其他观察者作为观察者返回?

  16. 16

    如何在 Objective-C 中添加观察者并在 Swift 3 中触发通知

  17. 17

    如何测试观察者?

  18. 18

    如何在RxJava中的动态列表上创建观察者?

  19. 19

    如何在Redux-Sagas中设置并随后取消多个观察者

  20. 20

    如何在相同条件下的ng-show中减少AngularJS内部的观察者

  21. 21

    如何在FragmentActivity的onBackPressed事件中传递数据或添加观察者

  22. 22

    如何在Ober js属性中同时具有观察者和init

  23. 23

    如何在 firebase 观察者路径中使用通配符?

  24. 24

    从观察者返回结果 - Vue JS

  25. 25

    如何合并多个可观察对象,并在单个订阅中获得全部结果

  26. 26

    如何更改angularJS中的观察者顺序?

  27. 27

    如何从阵列列表中删除__ob__:观察者?

  28. 28

    如何使用Magento 2中的事件和观察者

  29. 29

    如何设置观察者以监视magento中的客户?

热门标签

归档