我有2个功能。我想一个一个地运行它们,但是当第一个函数完成时,第二个函数必须等待 1-2 秒。我为此尝试了 Future.delayed 但没有成功。它什么也改变不了。
\nvoid kartat(int tip, int deger, int mainid, List mycards) {\n masadakicards.add(cardbank[mainid]);\n print("kart at\xc4\xb1ld\xc4\xb1");\n rakipkartat(51);\n\n }\n\n void rakipkartat(int mainid) {\n new Future.delayed(Duration(seconds: 1), () {\n // deleayed code here\n masadakicards.add(cardbank[mainid]);\n print("ann");\n });\n }\nRun Code Online (Sandbox Code Playgroud)\n
实现这一目标的一种方法是使用await Future.delayed
确保你的方法返回一个Future
Future<void> start() async {
await foo();
await Future.delayed(Duration(seconds: 2));
await bar();
}
Future<void> foo() async {
print('foo started');
await Future.delayed(Duration(seconds: 1));
print('foo executed');
return;
}
Future<void> bar() async {
print('bar started');
await Future.delayed(Duration(seconds: 1));
print('bar executed');
return;
}
Run Code Online (Sandbox Code Playgroud)
预期的:
foo started
- waits 1 second -
foo executed
- waits 2 seconds -
bar started
- waits 1 second -
bar executed
Run Code Online (Sandbox Code Playgroud)
按照你的方法
请注意,延迟后执行的方法还需要包含asyncand await,否则该方法将同步运行而不是等待 Future。
foo started
- waits 1 second -
foo executed
- waits 2 seconds -
bar started
- waits 1 second -
bar executed
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15553 次 |
| 最近记录: |