我有一个可观察的
Obs1
已使用该方法创建
from
从一组对象开始。
假设数组有10个对象,这意味着
发射10次,然后终止。
对于发射的每个对象
Obs1
我想执行一个函数,返回一个可观察的。因此,函数返回的可观测值与数组元素的数量相同,让我们调用它们
Obs2-1
Obs2-2
...
Obs2-10
. 这样的观察值只发出一个值,然后完成。
我想以某种方式链接
Obs1
到一系列观察值
Obs2-1
...
Obs2-10
因此
Obs1
发射its
(n+1)-第个值
什么时候
Obs2-
n
发射。
一个真实的例子可以使这件事更清楚。假设我有一个字符串数组。每个字符串都是文件名。我有一个函数
r-w-files(files: Array<string>)
它读取列表中的每个文件并将其写入另一个目录。
我想对大量文件执行这种读写逻辑,因此,为了避免同时打开太多文件,我想将大的初始列表划分为较小的块,然后用函数顺序处理它们
r-w文件(文件:数组<字符串>)
.
我想象的是有一种特定形式的块缓冲区
-
发出第一个块并将其传递给
r-w-files(files:
Array<string>)
-
然后等待,直到
r-w文件(文件:数组<字符串>)
完成
-
完成后,将第二个块传递给
r-w文件(文件:
阵列(<);字符串(>)
-
等等
有没有办法用可观察算子实现这种逻辑?