Flutter 如何生成内部回调函数?

Flutter 如何生成内部回调函数?,flutter,dart,bloc,Flutter,Dart,Bloc,请阅读这篇文章: if (event is TapVariant) { final bool isVariantCorrect = (correctVariantIndex == event.index); if (isVariantCorrect) { yield CorrectVariant(); } else { yield IncorrectVariant(); Future.delayed(Duration(seconds: 1), () {

请阅读这篇文章:

if (event is TapVariant) {
  final bool isVariantCorrect = (correctVariantIndex == event.index);
  if (isVariantCorrect) {  
    yield CorrectVariant();
  } else {
    yield IncorrectVariant();
    Future.delayed(Duration(seconds: 1), () { 
      yield CorrectVariant();
    });
  }
}
我需要从嵌套函数中生成正确的变量

我是这样解决的:

    yield IncorrectVariant();
    await Future.delayed(Duration(seconds: 1), () {});
    yield CorrectVariant();

但我很好奇

您已经介绍了最好的方法,原因如下:

  • 当您使用
    async*
    函数时,您可以访问
    wait
    关键字,该关键字允许您在同一范围内处理将来的回调

  • 如果在
    sync*
    函数中使用
    yield
    ,则不能等待回调,因为您没有运行异步代码


从回调返回 在处理
Future
时,您还可以在回调中返回您的值,如下所示:

产量1;
//下面的语句将在1秒后产生“2”。
收益等待未来。延迟(持续时间(秒:1),(){
返回2;
});

您已经介绍了最好的方法,原因如下:

  • 当您使用
    async*
    函数时,您可以访问
    wait
    关键字,该关键字允许您在同一范围内处理将来的回调

  • 如果在
    sync*
    函数中使用
    yield
    ,则不能等待回调,因为您没有运行异步代码


从回调返回 在处理
Future
时,您还可以在回调中返回您的值,如下所示:

产量1;
//下面的语句将在1秒后产生“2”。
收益等待未来。延迟(持续时间(秒:1),(){
返回2;
});