Dart是否有与async/await pattern in .net远程相似的内容?
例如,我想打开一个套接字并做几次握手:发送1,等待响应1,发送2,等待响应2等等。等待响应不应该明显阻塞,这就是async就是全部约。
这是一种方法:
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.
即。编写看起来同步并且更容易理解的代码,但实际上是异步运行。
有什么想法吗?
答案 0 :(得分:2)
不,还没有。不过,这是一个非常广泛需要的功能。请参阅https://code.google.com/p/dart/issues/detail?id=104(并解决问题的主题)。