在rxjs6中以随机间隔生成值流?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在rxjs6中以随机间隔生成值流?相关的知识,希望对你有一定的参考价值。

如何为每个间隔迭代设置randomIntervals的值?

import {random} from 'lodash'
import {interval, timer} from 'rxjs';
import {takeUntil} from 'rxjs/operators';

const timer$ = timer(5000);
const randomInterval = random(100, 1000);
const source = interval(randomInterval)
  .pipe(
    takeUntil(timer$)
  );
source.subscribe(console.log)
答案

我认为您不能指定随机间隔,但可以使用超时

const { BehaviorSubject } = rxjs;

const random$ = new BehaviorSubject(1);

random$.subscribe(val => { console.log(val); });

random();

function random() {
  random$.next(random$.getValue() + 1);
  setTimeout(random, Math.random() * 5000);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/rxjs/6.4.0/rxjs.umd.min.js"></script>
另一答案

那这个呢?间隔为零,返回具有随机延迟的项目。

const { interval, of } = rxjs;
const { concatMap, delay } = rxjs.operators;

interval(0).pipe(
  concatMap(i => of(i).pipe(delay(Math.random() * 5000)))
).subscribe(val => { console.log(val); });
<script src="https://cdnjs.cloudflare.com/ajax/libs/rxjs/6.4.0/rxjs.umd.min.js"></script>

以上是关于在rxjs6中以随机间隔生成值流?的主要内容,如果未能解决你的问题,请参考以下文章

将代码片段插入数据库并在 textarea 中以相同方式显示

按随机间隔选择tibble中的行

在 Windows 和 Linux 中以毫秒为单位的随机种子

在python中以特定间隔运行任务[重复]

在片段中以编程方式在视图中包含布局

我们可以在 iPhone 应用程序中以特定间隔在后台播放声音吗?