在Dart中,如何将函数作为返回Future的参数传递

ppcbkaq5  于 2023-05-04  发布在  其他
关注(0)|答案(2)|浏览(143)

我试图传递一个函数,该函数返回Future<Response>作为方法的参数
我试着去做

Future<String> _execute(Function<Future<Response>>() function) async { }

但它甚至不能编译。
正确的语法是什么?

h79rfbju

h79rfbju1#

你可以这样做

Future<String> _myFunction(Future<Response> Function() function) {
  ...
}
t5fffqht

t5fffqht2#

你只需要指定你的参数是一个函数:

Future<bool> kappa() async{
  await Future.delayed(Duration(seconds: 1));
  return true;
}
​
Future<bool> foo(Function f) async{
  var k = await f();
  return k;
}
​
void main() async{
   print(await foo(kappa));
}

这将打印true。在你的例子中,你的函数参数可以是:

Future<String> _execute(Function function) async { }

相关问题