2013-08-26 10 views
17

Mi piace simulare una chiamata al servizio web asincrono nella mia applicazione Dart per il test. Per simulare la casualità di queste chiamate simulate che rispondono (forse fuori uso) mi piacerebbe programmare i miei mock di aspettare (dormire) per un certo periodo di tempo prima di restituire il "futuro".Come "dormire" un programma Dart

Come posso fare questo?

risposta

24

È inoltre possibile utilizzare il factory Future.delayed per completare un futuro dopo un ritardo. Ecco un esempio di due funzioni che restituiscono una stringa in modo asincrono dopo un ritardo:

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

Non sempre ciò che si vuole (a volte si desidera Future.delayed), ma se si vuole veramente a dormire nel vostro Dart riga di comando app , puoi usare dart: io's sleep():

import 'dart:io'; 

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

Buono! Sfortunatamente, questa informazione è difficile da trovare sul sito ufficiale. –

+5

La libreria 'dart: io' non è disponibile se si sta creando un'applicazione Web – adeel41