Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rxjs 如果满足特定条件,是否有重置间隔值的方法?_Rxjs - Fatal编程技术网

Rxjs 如果满足特定条件,是否有重置间隔值的方法?

Rxjs 如果满足特定条件,是否有重置间隔值的方法?,rxjs,Rxjs,假设我有一个整数数组,我想以1秒的间隔迭代这个数组,当前秒是数组的索引。一旦索引到达末尾,我想重置间隔值。实现这种行为的正确方法是什么? 代码: 所以你想不确定地重复同样的序列 import { from, of } from "rxjs"; import { concatMap, repeat, delay } from "rxjs/operators"; const array = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; f

假设我有一个整数数组,我想以1秒的间隔迭代这个数组,当前秒是数组的索引。一旦索引到达末尾,我想重置间隔值。实现这种行为的正确方法是什么? 代码:


所以你想不确定地重复同样的序列

import { from, of } from "rxjs";
import { concatMap, repeat, delay } from "rxjs/operators";

const array = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];

from(array)
  .pipe(
    concatMap(second => of(second).pipe(
      delay(second * 1000),
    )),
    repeat(),
  )
  .subscribe(console.log);

现场演示:

所以你想不确定地重复相同的序列

import { from, of } from "rxjs";
import { concatMap, repeat, delay } from "rxjs/operators";

const array = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];

from(array)
  .pipe(
    concatMap(second => of(second).pipe(
      delay(second * 1000),
    )),
    repeat(),
  )
  .subscribe(console.log);

现场演示:

您能否对此解决方案进行详细说明?此外,延迟感觉超过1秒。延迟为
value*1000
。如果需要恒定延迟,可以将其保留为
1000
concatMap
发出的所有值堆叠起来,并在前一个值完成后为每个值调用其项目函数
repeat()
将在最后一个数字延迟且源代码完成时重新订阅。您能否对此解决方案提供一些详细说明?此外,延迟感觉超过1秒。延迟为
value*1000
。如果需要恒定延迟,可以将其保留为
1000
concatMap
发出的所有值堆叠起来,并在前一个值完成后为每个值调用其项目函数
repeat()
将在最后一个号码延迟且源代码完成时重新订阅。