我正在使用RxViz模拟每1秒出现的不同 Action 。当我尝试
Rx.Observable.create(obs => {
obs.next([1, 2, 3]); // or could be ['aaa', 'bbbb', 'ccc']
obs.complete();
}).delay(1000);
在https://rxviz.com上
或我自己使用console.log
它会同时显示三个数字1、2、3
有一篇关于这个相同问题的文章,但是没有一个答案对我有用。我正在使用Rx的最新版本6
How can I create an observable with a delay
[编辑]数组可以包含数字,字符串或任何对象之类的任何东西
最佳答案
如果要延迟每个值(例如,延迟1秒),则可以执行以下操作:
Rx.Observable.create(obs => {
obs.next([1, 2, 3]);
obs.complete();
})
.pipe(
// make observable to emit each element of the array (not the whole array)
mergeMap((x: [any]) => from(x)),
// delay each element by 1 sec
concatMap(x => of(x).pipe(delay(1000)))
)
.subscribe(x => console.log(x));
}
在这里,我没有修改您创建的可观察对象的内部。相反,我只是以您的观察力为基础,并进行适当的操作以实现您期望的目标。
关于rxjs - 使用RXJS延迟每个元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50886975/