【发布时间】:2020-08-07 05:32:47
【问题描述】:
我有一个数组,我在 rxjs 运算符(scan、concatMap、repeat、map)的帮助下将它拆分为一个延迟 5 毫秒的倍数块,我这样做了
这里:
(data: any[]) =>
from(
Array.from({ length: Math.ceil(data.length / 5) }, (_v, k) => k + 1)
).pipe(
scan((_acc, curr) => curr * 5, 0),
map((index: number) => data.slice(index - 5, index)),
concatMap((item) => of(item).pipe(delay(5000))),
repeatWhen(_=> interval(5000))
);
如何在 Observable 完成时跳过(避免)额外的 5000 毫秒延迟(延迟、repeatWhen)。
如果我改用重复运算符,则会收到 超出最大调用堆栈大小 错误
【问题讨论】:
-
你能在输入和输出中显示你想要什么吗?
-
作为输入我有一个像这样
[{name:"xxx", "lastaName":"xxxx", Id:1}, {name:"xxx", "lastaName":"xxxx", Id:2}, {name:"xxx", "lastaName":"xxxx", Id:3}, {name:"xxx", "lastaName":"xxxx", Id:4}, {name:"xxx", "lastaName":"xxxx", Id:5}, {name:"xxx", "lastaName":"xxxx", Id:6}, {name:"xxx", "lastaName":"xxxx", Id:7}, {name:"xxx", "lastaName":"xxxx", Id:8}, {name:"xxx", "lastaName":"xxxx", Id:9}, {name:"xxx", "lastaName":"xxxx", Id:10}]的数组,作为输出我想每 5 秒将数组拆分为 5 个元素的块并重新订阅
标签: rxjs