【发布时间】:2020-12-28 08:57:51
【问题描述】:
我在 dart 中尝试异步编程时偶然发现了一个问题,当我在 Future.delayed 函数中放入 return 语句时,它似乎没有返回值。
void main() {
perform();
}
void perform() async {
String result = await firstTask();
finalTask(result);
}
Future firstTask() async {
Duration duration = Duration(seconds: 4);
String result = 'task 2 data';
await Future.delayed(duration, () {
print('First Task Completed');
return result;
});
}
void finalTask(String result) {
print('final task completed and returned $result');
}
但如果我把返回结果; Future.delayed 函数之外的语句,它将其值返回给任务 3。比如,
void main() {
perform();
}
void perform() async {
String result = await firstTask();
finalTask(result);
}
Future firstTask() async {
Duration duration = Duration(seconds: 4);
String result = 'task 2 data';
await Future.delayed(duration, () {
print('First Task Completed');
});
return result;
}
void finalTask(String result) {
print('final task completed and returned $result');
}
【问题讨论】:
-
return Future.delayed(duration, () { print('First Task Completed'); return result; );
标签: flutter asynchronous dart