преобразовать функцию в наблюдаемый rxjs - PullRequest
0 голосов
/ 04 марта 2019

Imaging У меня есть этот код

function sayHi(){
  console.log("hi")
}
sayHi();
sayHi();
sayHi();
sayHi();
sayHi();

Над кодом будет регистрироваться hi 5 раз

Но я хочу использовать оператор debounce и регистрировать его только один раз в 1 сек.,

Как мне этого добиться?

1 Ответ

0 голосов
/ 04 марта 2019

функция internal: например,

import { interval } from 'rxjs';

const source = interval(1000).subscribe(val => console.log('hi'));

ссылка на документы

----- Отредактировано -----

Давайте попробуем что-нибудь еще:

hi$ будет Subject<void>, и мы подпишемся на него, чтобы что-то утешить

hi$.pipe(...).subscribe(() => {
  console.log('hi');
});

Давайте определим некоторую функцию для вызова hi$ subject,его можно вызывать в любое время и в любом количестве.

let fn = () => {
  hi$.next();
  // ...
}

Последнее, что нужно сделать, - это фильтр console.log, который заставляет его работать только один раз в секунду.Для этого я рекомендую throttle оператору debounce прекратить звонить абоненту на некоторое время, поэтому:

hi$.pipe(throttle(1000)).subscribe(() => {
  console.log('hi');
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...