Tôi đang cố gắng tạo luồng máy chủ web. Đây là mã:Sự khác biệt giữa chờ đợi và nghe trong Dart
import 'dart:io';
main() async {
HttpServer requestServer = await HttpServer.bind(InternetAddress.LOOPBACK_IP_V4, 8000);
requestServer.listen((request) { //comment out this or the await for to work
request.response
..write("This is a listen stream")
..close();
});
await for (HttpRequest request in requestServer) {
request.response
..write("This is an await for stream")
..close();
}
}
Sự khác biệt giữa nghe và chờ đợi là gì? Cả hai đều không hoạt động cùng một lúc. Bạn cần phải bình luận ra một hoặc khác để làm việc, nhưng có vẻ không phải là một sự khác biệt trong chức năng ở đây. Có những hoàn cảnh nào có sự khác biệt hay không và khi nào bạn nên sử dụng cái khác?
Lệnh 'chờ đợi for (var x trong dòng) ...' cú pháp là một gần tương đương với 'chờ stream.forEach ((x) {...})' hơn 'listen', giống như' for (var x in iterable) ... 'tương tự như' iterable.forEach ((x) {...}) '. Sự khác biệt xuất phát từ các vòng lặp 'for' cho phép luồng điều khiển mà' forEach' không có. – lrn