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

Sta*_*wer 6 dart flutter

我试图作为方法的参数传递,一个返回Future<Response>.

我试着做

Future<String> _execute(Function<Future<Response>>() function) async { }
Run Code Online (Sandbox Code Playgroud)

但它甚至不编译。

什么是正确的语法?

Cra*_*Cat 11

你可以这样做,

Future<String> _myFunction(Future<Response> Function() function) {
  ...
}
Run Code Online (Sandbox Code Playgroud)


Ade*_*los 6

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

\n\n
\nFuture<bool> kappa() async{\n  await Future.delayed(Duration(seconds: 1));\n  return true;\n}\n\xe2\x80\x8b\nFuture<bool> foo(Function f) async{\n  var k = await f();\n  return k;\n}\n\xe2\x80\x8b\nvoid main() async{\n   print(await foo(kappa));\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

这将打印true. 在您的情况下,您的函数参数可以是:

\n\n
Future<String> _execute(Function function) async { }\n
Run Code Online (Sandbox Code Playgroud)\n