Flutter - преобразовать событие блока flutter, чтобы добавить дебаунс

Я пытаюсь составить бесконечный список, используя блок флаттера.

Я взял ссылку отсюда: https://github.com/felangel/bloc/blob/926029cae2d7614d38b5a9a8952e36bb59054b02/examples/github_search/common_github_search/lib/src_bloc_github_search/lib/src_bloc_github_search/lib/src_github_search/lib/src_github_search/lib/src_github_search

Согласно этому сообщению, чтобы добавить задержку между двумя событиями, чтобы api не попал в спам, вам нужно переопределить transformEvents и добавить дебаунс к таким событиям:

@override
  Stream<GithubSearchState> transformEvents(
    Stream<GithubSearchEvent> events,
    Stream<GithubSearchState> Function(GithubSearchEvent event) next,
  ) {
    return (events as Observable<GithubSearchEvent>)
        .debounceTime(
          Duration(milliseconds: 300),
        )
        .switchMap(next);
  }

Проблема, с которой я столкнулся, заключается в том, что Observable устарел RxDart, и я не уверен, как выполнить вышеуказанное требование.


person Suhas Shelar    schedule 18.07.2020    source источник


Ответы (1)


Я нашел решение.

@override
  Stream<Transition< GithubSearchEvent, GithubSearchState >> transformEvents(
      Stream< GithubSearchEvent > events, transitionFn) {
    return events
        .debounceTime(const Duration(milliseconds: 300))
        .switchMap((transitionFn));
  }
person Suhas Shelar    schedule 18.07.2020
comment
Это может пропускать события, если они отправляются слишком часто? - person Sebastian Roth; 04.03.2021