在flutter中,我们可以将一个函数声明为变量并像这样调用它
MyWidget((){print('HI');});
class MyWidget extends StatelessWidget{
final Function sayHi;
MyWidget(this.sayHi);
@override
Widget build(BuildContext context) {
sayHi();
return ...
}
}
Run Code Online (Sandbox Code Playgroud)
但是如果sayHi()是异步函数呢?如何将异步函数声明为变量?似乎没有像AsyncFunction. 那么如何实现呢?
hol*_*ola 11
异步函数是普通函数,上面有一些糖。这里,函数变量类型只需要指定它返回一个 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();
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
3673 次 |
| 最近记录: |