2013-08-26 82 views
17

Tôi thích mô phỏng cuộc gọi dịch vụ web không đồng bộ trong ứng dụng Dart của tôi để thử nghiệm. Để mô phỏng tính ngẫu nhiên của các cuộc gọi giả này, có thể đáp ứng (có thể không đúng thứ tự), tôi muốn lập trình các mocks của tôi để chờ (ngủ) trong một khoảng thời gian nhất định trước khi trở về 'Tương lai'.Làm cách nào để "ngủ" chương trình Phi tiêu

Tôi làm cách nào để thực hiện việc này?

Trả lời

24

Bạn cũng có thể sử dụng nhà máy Future.delayed để hoàn thành một tương lai sau khi trì hoãn. Dưới đây là một ví dụ về hai chức năng mà trả về một chuỗi đồng bộ sau khi một sự chậm trễ:

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

Đó là không phải lúc nào những gì bạn muốn (đôi khi bạn muốn Future.delayed), nhưng nếu bạn thực sự muốn ngủ trong ứng dụng dòng lệnh Dart của bạn , bạn có thể sử dụng phi tiêu: io sleep():

import 'dart:io'; 

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

Tốt! Rất tiếc, thông tin này khó tìm thấy tại trang web chính thức. –

+5

thư viện 'phi tiêu: io' không khả dụng nếu bạn đang xây dựng một ứng dụng web – adeel41