Dart/Flutter 计时器后的屈服状态

Dart/Flutter Yield state after timer

我正在使用 flutter_bloc,但我不确定如何从回调中产生状态。 我试图在暂停后启动计时器和 return 一个新状态。我使用计时器的原因是能够取消以前的计时器,因此它总是 return 在空闲状态后进入新状态。

@override
  Stream<VerseState> mapEventToState(
    VerseEvent event,
  ) async* {
if (event is ABCEvent) {
Timer(const Duration(seconds: 3), () {
        print("Here");
        _onTimerEnd(); // adding yield here returns an error.
      })
}

Stream<XYZState> _onTimerEnd() async* {
    print("Yielding a state");
    yield myNewState();
  }

我可以看到代码进入定时器回调内部,因为我可以在回调中看到打印语句,但在 timerEnd() 方法中看不到。

状态应该由您当前正在处理的 bloc 中使用的流产生。喜欢

mapEventToState