我想动态更改间隔的周期/延迟,但不幸的是,我对Angular 不太熟悉,所以我只能停留在这一部分.

这是我当前的代码:

timeDiffs : number[] = [] <== this is a preprocessed array with the timemeasurements in milliseconds

this.interval$ = interval(this.timeDiffs[this.intervalCounter++]).subscribe(() => {
    //some function calling here
     this.intervalCounter++; // next index for next iteration with a different time
})

推荐答案

您应该只需要concatMap()timer()就可以做到这一点.concatMap()保证只有在前一个延迟完成时,才会以正确的顺序调用延迟.timer()将emits 一次,并在设置延迟后完成.

import { from, concatMap, timer } from 'rxjs';

const timeDiffs = [1000, 1000, 3000, 1000];

from(timeDiffs)
  .pipe(
    concatMap(delay => timer(delay)),
  )
  .subscribe(console.log)

演示:https://stackblitz.com/edit/rxjs-nqyxqk?devtoolsheight=60&file=index.ts

Typescript相关问答推荐

TypScript在对象上强制执行值类型时推断对象文字类型?

SortKey类型不起作用,尽管它使用的单个类型工作正常<>'

typescribe警告,explate—deps,useEffect依赖项列表

使用ngrok解析Angular 时出现HTTP故障

数组文字中对象的从键开始枚举

状态更新后未触发特定元素的Reaction CSS转换

编剧错误:正在等待Expect(Locator).toBeVisible()

访问继承接口的属性时在html中出错.角形

Angular文件上传到Spring Boot失败,多部分边界拒绝

以Angular 自定义快捷菜单

是否将自动导入样式从`~/目录/文件`改为`@/目录/文件`?

保护函数调用,以便深度嵌套的对象具有必须与同级属性函数cargument的类型匹配的键

转换器不需要的类型交集

React router 6(数据路由)使用数据重定向

在TypeScript中,如何通过一系列过滤器缩小类型?

VUE 3类型';字符串';不可分配给类型';参考<;字符串&>

如何从抽象类的静态方法创建子类的实例?

两个接口的TypeScript并集,其中一个是可选的

如何根据Typescript 中带有泛型的对象嵌套键数组获取数组或对象的正确类型?

如何在由函数参数推断的记录类型中具有多个对象字段类型