2013-08-26 4 views
17

Ich möchte einen asynchronen Web-Service-Aufruf in meiner Dart-Anwendung zum Testen simulieren. Um die Zufälligkeit dieser gefälschten Aufrufe zu simulieren (möglicherweise außer Betrieb) möchte ich meine Mocks so programmieren, dass sie eine bestimmte Zeit lang warten (schlafen), bevor sie die "Zukunft" zurückgeben.Wie kann ich ein Dart-Programm "schlafen"

Wie kann ich das tun?

Antwort

24

Sie können auch das Future.delayed-Werk verwenden, um mit Verzögerung eine Zukunft abzuschließen. Hier ist ein Beispiel von zwei Funktionen, die eine Zeichenfolge asynchron nach einer Verzögerung zurück:

import 'dart:async'; 

Future sleep1() { 
    return new Future.delayed(const Duration(seconds: 1),() => "1"); 
} 

Future sleep2() { 
    return new Future.delayed(const Duration(seconds: 2),() => "2"); 
} 
15

Es ist nicht immer das, was Sie wollen (manchmal will man Future.delayed), aber wenn Sie wirklich Befehlszeile app in Ihrem Dart schlafen können Sie dart verwenden: io's sleep():

import 'dart:io'; 

main() { 
    sleep(const Duration(seconds:1)); 
} 
+0

Gut! Leider sind diese Informationen auf der offiziellen Website schwer zu finden. –

+5

Die Bibliothek 'dart: io' ist nicht verfügbar, wenn Sie eine Webanwendung erstellen – adeel41