Достижение задержки для пользовательских наблюдаемых типов - PullRequest
0 голосов
/ 30 марта 2020

У меня есть наблюдаемое число, которое задерживается на 1 сек c.

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))

Идея состоит в том, чтобы задержать пользователей на один элемент c, как массив чисел.

1 Ответ

0 голосов
/ 30 марта 2020

Используйте concatMap для подачи пользователя в поток с одной задержкой c

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