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;
});