【发布时间】:2021-12-03 04:20:51
【问题描述】:
我被这个例外困住了。
我正在尝试根据你管上的课程创建一个 Number Trivia 应用程序
基本上我正在使用 dartz 库中的 Either 类处理错误和异常;
on<ConcreteNumberTriviaGottenEvent>((event, emit) async {
emit(NumberTriviaLoadingState());
final number =
InputConverter.convertStringToUnsignedInteger(event.numberString);
print(number);
number.fold((numberFailure) => emit(Error(message: failMessage(numberFailure))), (numberInt) async {
final either = await concreteTriviaUseCase.exec(numberInt);
either!.fold((serverFailure) => emit(Error(message: failMessage(serverFailure))),
(numberTrivia) => emit(NumberTriviaLoadedState(numberTrivia: numberTrivia)));
});
});
所以基本上字符串编号来自事件并从类 InputConversion 传递给一个静态方法,该方法返回一个 Either
E/flutter ( 6066): emit was called after an event handler completed normally.
E/flutter ( 6066): This is usually due to an unawaited future in an event handler.
E/flutter ( 6066): Please make sure to await all asynchronous operations with event handlers
E/flutter ( 6066): and use emit.isDone after asynchronous operations before calling emit() to
E/flutter ( 6066): ensure the event handler has not completed.
【问题讨论】:
-
我知道我应该等待 smt 但我不知道要等待什么 -
-
我可以使用一些硬编码整数和删除转换部分来传递错误。
-
请问您是如何解决这个问题的。我也面临同样的问题。
标签: flutter bloc flutter-bloc either dartz