如何使函数异步?

How to make a function asynchronous?

为什么下面代码中f的执行不是在main函数之后异步执行的。我希望它被安排在事件循环中执行。返回一些 Future 也无济于事。

void f() async {
  print('f');
}


void main() {
  print('main start');
  f();
  print('main end');
}

输出:

main start
f
main end

标记函数 async 不会使函数内部发生的事情异步或改变调用者处理它的方式。标记为 async 的函数内的任何同步代码仍将是 运行 同步,直到命中第一个异步函数调用。

要异步调用print('f'),构造一个新的Future

void f() {
  Future(()=>print('f'));
}


void main() {
  print('main start');
  f();
  print('main end');
}

或者如果您愿意,您可以在 main 构建未来:

void f() {
 print('f');
}


void main() {
  print('main start');
  Future(f);
  print('main end');
}