0

Dart には、リモートで .net の async/await パターンに似たものがありますか?

たとえば、ソケットを開き、いくつかのハンドシェイクを行いたい: 送信 1、応答 1 の待機、送信 2、応答 2 の待機など。

これを行う1つの方法は次のとおりです。

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 に答える