如何处理嵌套的可观察对象

用户名

这段代码对我有用,但我想知道这是否是处理嵌套订阅的更好方法。我正在获取一个我需要循环并在另一个http调用中使用的数组。这样有效吗?

this.storeService.fetchStores(this.currentCoordinates).subscribe(nearestStores => {
           nearestStores.forEach(store => {
                this.stockService.fetchStockResults(ean, store.id).subscribe(stock => {
                    this.stockResults.push({
                        storeObject: store,
                        ean: stock.ean,
                        ranged: stock.ranged,
                        inStock: stock.quantity > 0 ? true : false
                    }
                    );
                });
            });
        });
马克·范·斯特拉滕(Mark van Straten)

最好不要在.subscribe()其中也可能出错的情况下执行异步操作您最好将这些调用嵌入到Rx流中,以便进行错误处理和并发控制之类的操作:

this.storeService.fetchStores(this.currentCoordinates)
  .mergeMap(_ => _) /* emit all values from the stores array as separate values in the rx stream */
  .mergeMap(
    store => this.stockService.fetchStockResults(store.ean, store.id))
      .catch(err => Rx.Observable.of({ ean: -1, range: false, quantity: -1})),
    (store, stock) => ({
                        storeObject: store,
                        ean: stock.ean,
                        ranged: stock.ranged,
                        inStock: stock.quantity > 0 ? true : false
                    }),
    10 /* concurrency; how many in-flight requests do you want?*/
  )
  .toArray()
  .subscribe(stockResults => console.log(stockResults));

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何处理可观察对象?

来自分类Dev

如何处理可观察对象发出的项目并访问另一个对象的值?

来自分类Dev

如何处理axios httpservice可观察到的响应?

来自分类Dev

如何从可观察对象数组创建可观察对象数组?

来自分类Dev

如何处理可能为空的rxjs可观察到的响应?

来自分类Dev

Mobx 和 React。可观察到的变化后如何处理焦点输入?

来自分类Dev

Reactive Extensions ToEnumerable 如果不迭代所有内容,如何处理可观察状态

来自分类Dev

处理多个角度可观察对象

来自分类Dev

使用Switch语句时如何处置内部可观察的对象

来自分类Dev

如何在可观察的属性上过滤可观察的对象?

来自分类Dev

使用可观察对象如何映射嵌套的动态对象键?使用角度日历事件

来自分类Dev

如何嵌套多个可观察物/订阅

来自分类Dev

Laravel 5:如何处理json请求中的嵌套对象

来自分类Dev

订阅另一个可观察对象内的嵌套可观察对象

来自分类Dev

Angular2:子属性更改时更新可观察对象(嵌套的可观察对象)

来自分类Dev

如何使用Rx-MVVM-C处理可观察对象的导航

来自分类Dev

Android-视图持有者中的Rx可观察订阅:如何处理生命周期?

来自分类Dev

如何从pubnub订阅创建可观察对象

来自分类Dev

如何使MobX中的类对象可观察?

来自分类Dev

如何退订使switchMap的可观察对象

来自分类Dev

如何等待可观察对象完成?

来自分类Dev

如何正确组成流\可观察对象

来自分类Dev

如何更改可观察的复杂对象?

来自分类Dev

如何创建单例可观察对象?

来自分类Dev

如何从可观察集合中获取对象?

来自分类Dev

如何处理嵌套条件

来自分类Dev

如何处理嵌套字典?

来自分类Dev

如何处理嵌套条件

来自分类Dev

如何处理嵌套列表?

Related 相关文章

  1. 1

    如何处理可观察对象?

  2. 2

    如何处理可观察对象发出的项目并访问另一个对象的值?

  3. 3

    如何处理axios httpservice可观察到的响应?

  4. 4

    如何从可观察对象数组创建可观察对象数组?

  5. 5

    如何处理可能为空的rxjs可观察到的响应?

  6. 6

    Mobx 和 React。可观察到的变化后如何处理焦点输入?

  7. 7

    Reactive Extensions ToEnumerable 如果不迭代所有内容,如何处理可观察状态

  8. 8

    处理多个角度可观察对象

  9. 9

    使用Switch语句时如何处置内部可观察的对象

  10. 10

    如何在可观察的属性上过滤可观察的对象?

  11. 11

    使用可观察对象如何映射嵌套的动态对象键?使用角度日历事件

  12. 12

    如何嵌套多个可观察物/订阅

  13. 13

    Laravel 5:如何处理json请求中的嵌套对象

  14. 14

    订阅另一个可观察对象内的嵌套可观察对象

  15. 15

    Angular2:子属性更改时更新可观察对象(嵌套的可观察对象)

  16. 16

    如何使用Rx-MVVM-C处理可观察对象的导航

  17. 17

    Android-视图持有者中的Rx可观察订阅:如何处理生命周期?

  18. 18

    如何从pubnub订阅创建可观察对象

  19. 19

    如何使MobX中的类对象可观察?

  20. 20

    如何退订使switchMap的可观察对象

  21. 21

    如何等待可观察对象完成?

  22. 22

    如何正确组成流\可观察对象

  23. 23

    如何更改可观察的复杂对象?

  24. 24

    如何创建单例可观察对象?

  25. 25

    如何从可观察集合中获取对象?

  26. 26

    如何处理嵌套条件

  27. 27

    如何处理嵌套字典?

  28. 28

    如何处理嵌套条件

  29. 29

    如何处理嵌套列表?

热门标签

归档