0

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.

即编写看起来同步且更容易理解但实际上运行异步的代码。

有任何想法吗?

4

1 回答 1

2

还没有。不过,这是一个非常受欢迎的功能。请参阅https://code.google.com/p/dart/issues/detail?id=104(并为问题加注星标)。

现在它有: https ://www.dartlang.org/articles/await-async/

于 2013-07-12T15:43:36.197 回答