【发布时间】:2017-10-19 11:30:32
【问题描述】:
我有一个数据流,其中包含快速传入的数据。我想通过保持顺序将它们插入数据库。我有一个数据库,它返回一个 Promise,当插入成功时解决。
我想做一个 Rx 流,它缓冲新数据,直到插入缓冲的数据。
我该怎么做?
【问题讨论】:
-
还有什么问题?有
buffer、bufferToggle或bufferWhen运算符。 -
问题是我不知道如何使用它们。想弄清楚,但还不知道怎么做。
-
使用
concatMap,从项目函数返回承诺。concatMap会为你做缓冲,但是 RxJS 没有背压,所以如果你的数据到达的速度比你写的快,你会耗尽内存。 -
我也可以插入多条记录,这就是为什么缓冲区会很好,它将传入的数据收集到一个数组中,直到上一个承诺完成。