Как динамически изменить интервал с помощью наблюдаемой трубы? - PullRequest
0 голосов
/ 20 декабря 2018

Вот метод.intervalValue обновляется нажатием кнопки.Значение часто меняется.

intervalValue: number; 
intervalValue: Observable<number>; // also tried this. but interval method is looking for a number 

  ngOnInit() {

    interval(intervalValue)
    .pipe( 
              debounceTime(150),
              distinctUntilChanged(),
              tap(() => { 
                    ... 
                }), 
              startWith({}),
        switchMap(() => { 
         ... 
        }),
        map(data => {
          ... 
          return data.content;
        }),
        catchError(() => {
         ... 
        })
        ).subscribe(data => this.data = data);
}                                                       

Но когда intervalValue изменяется, interval все еще имеет свое первоначальное значение.Как изменить интервал при изменении значения intervalValue?

1 Ответ

0 голосов
/ 20 декабря 2018

Вам нужно будет начать с потока Intervalue

const intervalValue=of(Math.random()*10000)
intervalValue
    .pipe( 
              switchMap(time=>interval(time))
              debounceTime(150),
              distinctUntilChanged(),
              tap(() => { 
                    ... 
                }), 
              startWith({}),
        switchMap(() => { 
         ... 
        }),
        map(data => {
          ... 
          return data.content;
        }),
        catchError(() => {
         ... 
        })
        ).subscribe(data => this.data = data);
...