2013-08-26 11 views
17

Lubię symulować asynchroniczne wywołanie usługi internetowej w mojej aplikacji Dart do testowania. Aby zasymulować przypadkowość tych pozorowanych wywołań (być może nieczynnych), chciałbym zaprogramować moje drwiny, aby zaczekały (spać) przez pewien okres czasu przed zwróceniem "Przyszłości".Jak mogę "zasnąć" Program do gry w rzutki

Jak mogę to zrobić?

Odpowiedz

24

Możesz również użyć fabryki Future.delayed, aby ukończyć przyszłość po pewnym czasie. Oto przykład dwóch funkcji, które zwracają ciąg asynchronicznie z opóźnieniem:

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

Nie zawsze to, co chcesz (czasami chcesz Future.delayed), ale jeśli naprawdę chcesz spać w Dart wiersza poleceń aplikacji możesz użyć rzutki: io: sleep():

import 'dart:io'; 

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

Dobrze! Niestety ta informacja jest trudna do znalezienia na oficjalnej stronie. –

+5

Biblioteka "dart: io" nie jest dostępna, jeśli tworzysz aplikację internetową – adeel41