Wie werden mehrere asynchrone E / A-Aktionen sauber in Dart ausgeführt (isoliert)?

8

In Dart gibt es ein Konzept von Isolaten. Ich habe eine Anwendung (die ich in Dart experimentiere), die viele asynchrone IO hat, wo jeder Aufruf (sie sind Datenbankaufrufe) von dem vorherigen abhängen. Also bin ich in einer verschachtelten Callback-Hölle gelandet.

Ich habe mich gefragt, ob Isolates diese verschachtelte Callback-Suppe lösen könnte, aber es sieht ein bisschen aus und ich bin mir nicht sicher, ob es gut passt.

Es gibt auch Generatoren, die in der nächsten ECMAScript Harmony vorgeschlagen werden, die diese Dinge lösen könnten, aber wie würden Sie derzeit viele asynchrone IOs in Dart sauber machen?

    
Tower 07.02.2012, 21:34
quelle

1 Antwort

6

Sie können Futures und Completers , um die Zusammenarbeit zu koordinieren. Die folgende Zukunft gibt das Ergebnis eines Befehls 'ls' aus einem Prozess zurück:

%Vor%

was Sie dann wie folgt verketten können:

  

fetch ('/'). dann ((val) = & gt; fetch ("/ usr"). dann ((val) = & gt; fetch ("/ tmp")));

Nicht die schönste Lösung, aber dafür komme ich jetzt mit.

    
Lars Tackmann 07.02.2012, 23:25
quelle

Tags und Links