在flutter中,我们可以将一个函数声明为变量,然后像这样调用它
MyWidget((){print('HI');});
class MyWidget extends StatelessWidget{
final Function sayHi;
MyWidget(this.sayHi);
@override
Widget build(BuildContext context) {
sayHi();
return ...
}
}
但是,如果sayHi()
异步函数呢?如何将异步函数声明为变量?似乎没有像这样的阶级AsyncFunction
。那么如何实现呢?
异步功能是正常功能,上面还有一些糖。在这里,函数变量类型只需要指定它返回一个Future即可:
class Example {
Future<void> Function() asyncFuncVar;
Future<void> asyncFunc() async => print('Do async stuff...');
Example() {
asyncFuncVar = asyncFunc;
asyncFuncVar().then((_) => print('Hello'));
}
}
void main() => Example();
希望这可以帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句