Dart 是否有任何与.net 中的 async/await 模式类似的东西?
例如,我想打开一个套接字并进行几次握手:发送 1、等待响应 1、发送 2、等待响应 2 等。等待响应显然不应该阻塞,这就是异步的全部内容。
这是一种方法:
Socket _socket;
Socket.connect(_host, _port).then(
(Socket socket) {
print("socket open!");
_socket = socket;
socket.transform(new StringDecoder()).listen(ProcessResponse);
socket.write("1");
});
void ProcessResponse(String response)
{
print("response received!");
if (response == "1") _socket.write("2");
if (response == "2") _socket.write("3");
if (response == "3") _socket.write("4");
// ... etc ..
}
我希望能够写出类似的东西
socket.write("1");
response1 = await socket.getResponse();
socket.write("2");
response2 = await socket.getResponse();
socket.write("3");
response3 = await socket.getResponse();
// etc.
即编写看起来同步且更容易理解但实际上运行异步的代码。
有任何想法吗?