【发布时间】:2021-04-02 07:25:06
【问题描述】:
我正在使用 Dart 和全新的异步编程。我希望将用户输入的文本字段提交给 API 异步函数,然后返回结果。我根本无法理解它,也无法在任何地方找到可以提供帮助的信息。我认为我的问题是我以某种方式错误地结合了同步和异步编程?
(我正在使用 VSCode)
非常感谢任何帮助。
import 'dart:io';
import 'dart:async';
Future<String> createRegDetailsMessage(String regFromUser) async {
var regDetails = await fetchRegDetails(regFromUser);
return 'Retrieved Data: $regDetails';
}
Future<String> fetchRegDetails(String regPassedOn) =>
// Imagine that this function is
// more complex and slow.
Future.delayed(
Duration(seconds: 2),
() => regPassedOn,
);
Future<void> searchForDetails(String foo) async {
print('Searching for Vehicle information...');
print(await createRegDetailsMessage(foo));
}
Future<void> main() async {
print('Registraion to be found:');
var regToFind = stdin.readLineSync();
print('$regToFind - confirmed');
await searchForDetails(regToFind);
}
来自 VScode 的错误消息:全局评估需要已加载线程
【问题讨论】:
-
var regToFind = stdin.readLineSync(); print( await fetchRegDetails(regToFind));不起作用? -
我得到这个错误:Registraion to be found: abc123 Global evaluation requires a thread to have been loaded
-
abc123是什么? -
abc123-用户输入。它只是一个注册的通用测试字符串表示
-
我是不是误会了什么?
标签: flutter dart asynchronous