Sự khác biệt giữa async v...
Sự khác biệt giữa async v...
Trong ngôn ngữ lập trình Dart, từ khóa async
và async*
đều được sử dụng để xử lý các tác vụ bất đồng bộ, nhưng chúng có những đặc điểm khác nhau:
async
: Khi bạn thêm từ khóa async
vào một hàm, điều đó có nghĩa là hàm đó sẽ thực hiện một số công việc có thể mất một thời gian dài. Hàm này sẽ trả về kết quả được bọc trong một đối tượng Future
. Bạn có thể lấy kết quả đó bằng cách sử dụng await
để chờ đợi Future
hoàn thành[1].
async*
: Từ khóa async*
được thêm vào để tạo ra một hàm trả về nhiều giá trị tương lai, mỗi lần một giá trị. Kết quả được bọc trong một đối tượng Stream
. Đây được gọi là hàm sinh bất đồng bộ (asynchronous generator function). Bạn sử dụng yield
để trả về một giá trị thay vì return
vì bạn không rời khỏi hàm. Bạn cũng có thể sử dụng await for
để chờ đợi từng giá trị được phát ra bởi `Stream...
senior
Gợi ý câu hỏi phỏng vấn
Chưa có bình luận nào