Как я могу дросселировать массив в поток, созданный с помощью оператора rx js "from"? - PullRequest
0 голосов
/ 14 апреля 2020

Я хочу регулировать содержимое наблюдаемого массива, созданного с помощью оператора «from», чтобы отображать каждое значение с интервалом в 1 секунду. Отказ от газа показывает от 1 до 10, как ожидалось. Если я ввожу газ в трубу наблюдаемой (), поток выводит только «1».

https://stackblitz.com/edit/rxjs-behaviorsubject-simpleexample-knappa?file=index.ts

// RxJS v6+
import { from, interval } from 'rxjs';
import { throttle } from 'rxjs/operators';

const observable = from([1,2,3,4,5,6,7,8,9,10]);
const example = observable.pipe(
  // removing this line displays the full array all at once
  throttle(ev => interval(1000))
  // what we want is 1..2..3..4.. printed in succession, 1 number a second
);
example.subscribe(x => console.log(x));

Как я могу напечатать числа массива с интервалом в 1 секунду?

По расширению, как я могу добавить числа в поток, созданный с помощью «from», и продолжайте регулировать эти значения с интервалом в 1 секунду?

Это совершенно не понятно. Любая помощь будет высоко ценится. Заранее спасибо.

1 Ответ

1 голос
/ 14 апреля 2020

Я должен был Google, но это должно дать вам то, что вы хотите:

// RxJS v6+
import { of, from } from 'rxjs';
import { delay, concatMap } from 'rxjs/operators';

const observable = from([1,2,3,4,5,6,7,8,9,10]);
const example = observable.pipe(
  // removing this line displays the full array all at once
  concatMap(item => of(item).pipe(delay(1000)))
  // what we want is 1..2..3..4.. printed in succession, 1 number a second
);
example.subscribe(x => console.log(x));

https://stackblitz.com/edit/rxjs-delay-from-array

...