title: BLoC search debounce
body: <p>I have a bloc (piece of code)</p>
  <pre><code>    ...
    Stream&lt;SearchState&gt; _mapSearchSuggestionsEvent(SearchSuggestionsEvent event) async* {
      final results = await _searchApi.getSuggestions(event.query);
      yield SearchStateShowSuggestions(results);
    }
      ...
  </code></pre>
  <p>and tried to debounce events to avoid excessive network calls</p>
  <pre><code>  @override
    Stream&lt;Transition&lt;SearchEvent, SearchState&gt;&gt; transformEvents(
        Stream&lt;SearchEvent&gt; events, TransitionFunction&lt;SearchEvent, SearchState&gt; transitionFn) {
      return events.debounceTime(Duration(milliseconds: 1000)).asyncExpand(transitionFn);
    }
  </code></pre>
  <p>Also I added logs inside <code>_searchApi.getSuggestions</code> method.</p>
  <p>What I see in logs :</p>
  <pre><code>I/flutter ( 4838):  [SearchApi] : getSuggestions
  I/flutter ( 4838):  [SearchApi] : getSuggestions k
  I/flutter ( 4838):  [SearchApi] : getSuggestions kr
  I/flutter ( 4838):  [SearchApi] : getSuggestions kre
  I/flutter ( 4838):  [SearchApi] : getSuggestions krev
  I/flutter ( 4838):  [SearchApi] : getSuggestions kreve
  </code></pre>
  <p>and so on...</p>
  <p>Adding event :</p>
  <pre><code>_textEditingController.addListener(() {
        _bloc.add(SearchSuggestionsEvent(_textEditingController.text));
      });
  </code></pre>
  <p>Maybe I don't understand, but why my calls is not skipping when I'm using debounce?</p>