如何在flutter(dart)中将异步函数声明为变量?

乔希

在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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Golang测试声明为变量的函数(testify)

在SwiftUI中将视图声明为View主体内的变量时,出现“函数声明不透明的返回类型[...]”错误

如何在TypeScript中将类型声明为可为空?

如何在Kotlin中将函数声明为变量

在原型中添加函数,而不是在OOP Javascript中将其声明为变量

在Typings声明中将函数声明为参数

在C中将函数参数声明为const

如何在sql语句中将数据库声明为变量

如何在触发器函数中使用json字符串元素而不将其声明为变量

混合Swift和C:如何在最简单的方法中将C函数声明为参数

如何在pytorch中将标量声明为参数?

如何在Dart / Flutter中声明一个接受多个参数的函数回调?

如何在sml中将curried函数的输入声明为real?

有什么方法可以在perl中将函数声明为变量?

如何在Python中将数组声明为函数参数?

是否可以在Dart的类中将方法声明为final?

如何在TypeScript中将函数类型声明为参数

如何在F#中将类型声明为受约束的

如何在WCF的业务层中将类声明为DataContract

变量或字段(函数)声明为无效

如何在MATLAB中的函数中将二维数组声明为参数?

如何在OSX上将静态C ++函数声明为好友

将现有函数声明为异步?

在c中将函数声明为变量

如何在 Orcale SQL 中将查询的输出声明为变量

如何将变量声明为函数并为其赋值

如何在 Maplesoft 中将通用变量声明为时间的函数,以便可以应用链规则?

如何在打字稿中将 ID 声明为数字?

直接使用函数或将其声明为变量