将RxJS v4代码转换为v5,使用“拉”处理队列

马克·埃里克(Mark Eric)
---abcde-----f-------gh-----i---->  //Events

我有一个要观察/订阅的“工作队列”。这是要处理的命令对象的数组。新工作通常会突然出现,需要按顺序进行处理(按照收到的顺序,一次一次,直到完全处理)。

我正在使用RxJS 5.0.0-beta.6。(其他图书馆强加的版本)

这是一个工作示例,它说明了我想要的行为,但是使用了RxJS v4。

有问题的主要代码是这样的...

var events$ = Rx.Observable.fromEvent(produceEvent, 'click')
  .timestamp()
  .tap(({timestamp}) => updatePanelAppend(pending, timestamp));

var inProgress$ = events$;

var done$ = inProgress$
  .flatMapWithMaxConcurrent(1, ({timestamp}) => 
                            Rx.Observable.fromPromise(() => {
                              updatePanelAppend(inProgress, timestamp);
                              removeFromPanel(pending, timestamp);
                              return expensiveComputation(getRandomInt(1, 5) * 1000, timestamp)
                           }));

done$.subscribeOnNext((timestamp) => {
  updatePanelAppend(done, timestamp);
  removeFromPanel(inProgress, timestamp);
});

http://jsbin.com/meyife/edit?js,输出

鉴于API的当前beta状态和不完整/更改的文档,我不知道如何在RxJS 5中执行此操作。

更新:此从v4迁移到v5的迁移指南显示了许多已删除的功能,但未说明如何以新方式进行操作。删除的操作的示例:.tap,.control,.flatMapWithMaxConcurrent(重命名)。

保罗·丹尼尔斯
  • flatMap/mergeMap -现在需要一个并发参数

  • tap -> do

  • subscribeOnNext不再存在,因此只需使用subscribe一个参数即可。

  • fromPromiseRxJS 5上不存在重载,请defer改用。

这里查看更新的jsbin

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将StackNavigator从v4转换为v5 React Native错误以进行身份验证

来自分类Dev

D3(v4 / v5):将垂直小提琴图转换为水平小提琴图

来自分类Dev

将 rxjs 5 重构为 rxjs 6 代码 - retryWhen

来自分类Dev

将数字转换为IP地址(v4)

来自分类Dev

将 RxJS 5 Rx.Observable.timer(3000).mapTo({ id: 1 }) 转换为 RxJS 6?

来自分类Dev

使用RxJS / TypeScript / JavaScript将行转换为列

来自分类Dev

使用RxJS将Observable [A列表]转换为Observable [B列表]

来自分类Dev

使用RxJS / TypeScript / JavaScript将行转换为列

来自分类Dev

使用RxJS将Observable [A列表]转换为Observable [B列表]

来自分类Dev

在运行时将ES5代码转换为ES6

来自分类Dev

将Swift 2代码转换为Swift 3

来自分类Dev

使用CryptoJS将等效的Python3代码转换为JS DES加密

来自分类Dev

使用pyinstaller警告模块将python3.5代码转换为exe文件

来自分类Dev

RXJS如何将Observable <T []>转换为Observable <T>

来自分类Dev

RxJs-将Flickr请求转换为照片流

来自分类Dev

需要帮助将d3.pack()从v3转换为v4

来自分类Dev

Facebook PHP SDK将v4升级到v5和OpenGraph会话

来自分类Dev

将 D3 V4 折线图转换为视图

来自分类Dev

将垂直堆叠条转换为水平堆叠条 D3.js v4

来自分类Dev

如何将RxJS 5添加为Bower依赖项

来自分类Dev

使用RxJS将初始流与修改流结合

来自分类Dev

使用rxjs将数据添加到http响应

来自分类Dev

如何在RxJs 5中将主题转换为可观察对象

来自分类Dev

如何将IPython v3笔记本转换为Jupyter v4?

来自分类Dev

使用EventEmitter将按钮单击转换为可观察到的RXJS

来自分类Dev

如何使用 rxjs 将树数据转换为单行数据

来自分类Dev

将Array序列化为元素,使用RxJS进行转换,然后将元素组合回数组

来自分类常见问题

将“ yield from”语句转换为Python 2.7代码

来自分类Dev

将C ++ 11转换为等效的C ++ 98代码

Related 相关文章

  1. 1

    将StackNavigator从v4转换为v5 React Native错误以进行身份验证

  2. 2

    D3(v4 / v5):将垂直小提琴图转换为水平小提琴图

  3. 3

    将 rxjs 5 重构为 rxjs 6 代码 - retryWhen

  4. 4

    将数字转换为IP地址(v4)

  5. 5

    将 RxJS 5 Rx.Observable.timer(3000).mapTo({ id: 1 }) 转换为 RxJS 6?

  6. 6

    使用RxJS / TypeScript / JavaScript将行转换为列

  7. 7

    使用RxJS将Observable [A列表]转换为Observable [B列表]

  8. 8

    使用RxJS / TypeScript / JavaScript将行转换为列

  9. 9

    使用RxJS将Observable [A列表]转换为Observable [B列表]

  10. 10

    在运行时将ES5代码转换为ES6

  11. 11

    将Swift 2代码转换为Swift 3

  12. 12

    使用CryptoJS将等效的Python3代码转换为JS DES加密

  13. 13

    使用pyinstaller警告模块将python3.5代码转换为exe文件

  14. 14

    RXJS如何将Observable <T []>转换为Observable <T>

  15. 15

    RxJs-将Flickr请求转换为照片流

  16. 16

    需要帮助将d3.pack()从v3转换为v4

  17. 17

    Facebook PHP SDK将v4升级到v5和OpenGraph会话

  18. 18

    将 D3 V4 折线图转换为视图

  19. 19

    将垂直堆叠条转换为水平堆叠条 D3.js v4

  20. 20

    如何将RxJS 5添加为Bower依赖项

  21. 21

    使用RxJS将初始流与修改流结合

  22. 22

    使用rxjs将数据添加到http响应

  23. 23

    如何在RxJs 5中将主题转换为可观察对象

  24. 24

    如何将IPython v3笔记本转换为Jupyter v4?

  25. 25

    使用EventEmitter将按钮单击转换为可观察到的RXJS

  26. 26

    如何使用 rxjs 将树数据转换为单行数据

  27. 27

    将Array序列化为元素,使用RxJS进行转换,然后将元素组合回数组

  28. 28

    将“ yield from”语句转换为Python 2.7代码

  29. 29

    将C ++ 11转换为等效的C ++ 98代码

热门标签

归档