2013-07-12 91 views
0

Dart是否有類似於async/await pattern in .net的東西?飛鏢中的異步/等待模式?

例如,我想打開一個套接字並進行多次握手:發送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. 

即寫代碼,但實際上運行異步。

任何想法?

+0

YEPP,複製。看起來答案是「否」。 :( – Max

+1

現在答案是'是':-) –

回答