Futures / Ein Beispiel

 

Futures in Dart / ein Beispiel

Nachdem mir das Beispiel auf der Blogseite von Seth Ladd nicht ganz klar war, habe ich hier ein lauffähiges Sample erstellt.

Für weitere Infos über Futures, über das chaining von Futures usw. lesen Sie bitte auf der Seite von Seth weiter. Ich hoffe, dass auch die Kommentare im Source einige Hinweise liefern.

Ich denke mal, wenn man die Futures einmal ausprobiert hat, dann kann man sich dem Konzept dahinter nicht mehr wirklich entziehen. Viel Spaß beim Probieren...

// Just to make sure which function returns what class Result { final String message; Result(this.message); } // Function annotation typedef FutureTest(final Result result); // Huuu - here it comes Future<String> costlyQuery() { final Completer<String> completer = new Completer(); loop(1,6,(final Result result) { completer.complete("Loop finished with: " + result.message); }); return completer.future; } loop(final int from,final int to,final FutureTest futuretest) { // Imagine this loop as a REST-Query (async) for(int i = from;i < to;i++) { print('-'); } // and now the result comes back from your REST-Server futuretest(new Result("$to iterations!")); } main() { print("Before costlyQuery"); Future<String> future = costlyQuery(); print("After costlyQuery"); print("Before then"); future.then((message) => print(message)); print("Before then"); }

Es scheint mit Chrome und der Einbindung von try.dartlang.org ein Problem zu geben - manchmal verschwindet der Source-Code.

Sollten bei Ihnen die Zeilennummern angezeigt werden aber keine Source, klicken Sie bitte auf "Checked mode" und auf der rechten Seite des Source-Fensters auf die "refresh"-Schaltfläche.