因此,我一直在尝试DART(因此,我的核心语言是C ++和嵌入式C派生)。因此,由于我更像是一个程序程序员,所以我的代码可能不太漂亮,但是我正在学习和学习...我一直在努力开发与等待同步有关的Future,基本上,我根本无法获得DART等待。以下代码建立与小型嵌入式设备的套接字连接并提取信息。一切正常,但请注意操作顺序应为main()从控制台获取一些信息,然后应调用方法cardStatus运行并通过套接字连接从嵌入式设备获取信息。这就是等待发生的地方。当返回Future时,它应该转到printstuff()方法。我添加了应按顺序阅读的打印语句:
相反,由于cardstatus调用上没有发生等待(这很耗时),因此我得到:
我在使用async时遵循了另一个线程,并且似乎至少遵循了使用该Other线程的一种可靠方法(我尝试使用.then和一个具有相同结果的完成器,所以我觉得有些核心我很想念)..但是我已经坚持了一个星期。
下面的代码以及控制台输出。
import 'dart:io';
import 'dart:async' show Future;
const String STATUS = "#111111;";
String defaultIP = "10.1.14.202";
int defaultConfigPort = 5111;
int defaultControlPort = 6722;
var card = new Map();
getInput(String defaults) {
String takenin = stdin.readLineSync();
if (takenin == '') takenin = defaults;
return takenin;
}
Future main() async {
stdout.write('What is the IP address of the card ($defaultIP): ');
String ipaddress = getInput(defaultIP);
defaultIP = ipaddress;
print …Run Code Online (Sandbox Code Playgroud)