【问题标题】:Achieving delay for custom observable types实现自定义可观察类型的延迟
【发布时间】:2020-07-10 10:19:29
【问题描述】:

我有一个延迟 1 秒的可观察数字。

const obsNums = from([...Array(100).keys()])
obsNums.pipe(delayWhen((x: number) => timer(x * 1000))).subscribe(x => console.log(x))

我们可以用自定义类型实现类似的东西吗?

const obsCus = from(this.item$ = this.getItems())

  getItems(): Observable<any> {
    return this.http.get<Observable<any>>('https://jsonplaceholder.typicode.com/users')
  }

obsCus.pipe(delayWhen((usr: user) => timer(usr * 1000))).subscribe(usr => console.log(usr))

这里的想法是像数字数组一样将用户延迟一秒。

【问题讨论】:

  • 使用rxjs interval应该可以工作。
  • 你能告诉我怎么做吗?

标签: angular rxjs


【解决方案1】:

使用concatMap 以一秒的延迟将用户提供给流

getItems().pipe(
switchMap(users=>from(users))
concatMap(user=>timer(1000).pipe(mapTo(user)))
)

【讨论】:

  • 太棒了。谢谢。这是工作。非常感谢,伙计。
  • 是的。当然。我正在使用它。以后有什么联系方式吗?如果我对 angular/rxjs 有类似的问题。
  • 很快会在我的个人资料中留下一些联系信息。我大部分时间都在这里支持 rxjs 问题,你会不时见到我
  • 好的。伟大的。谢谢。
  • 你好 Fan Cheung,我还需要一个帮助。您能否就此提出您的建议:stackoverflow.com/questions/60868988/…
猜你喜欢
  • 2017-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多