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.
つまり、同期しているように見えてはるかに理解しやすいコードを記述しますが、実際には非同期で実行されます。
何か案は?