如何使函数异步?
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');
}
为什么下面代码中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');
}