Hãy phân biệt Async và Async* trong Flutter?
Hãy phân biệt Async và Async* trong Flutter?
Trong Dart, từ khóa async và async* đều được sử dụng để xử lý các hoạt động không đồng bộ, nhưng chúng phục vụ cho các mục đích khác nhau.
async được sử dụng để đánh dấu một hàm là không đồng bộ. Nó cho phép sử dụng await bên trong hàm và trả về một Future.async thực thi tuần tự cho đến khi gặp từ khóa await đầu tiên. Điều này có nghĩa là tất cả mã đồng bộ bên trong thân hàm async sẽ thực thi ngay lập tức. Future<int> doSomeLongTask() async {
await Future.delayed(const Duration(seconds: 1));
return 42;
}
void main() async {
int result = await doSomeLongTask();
print(result); // prints '42' after waiting 1 second
}
async* đánh dấu một hàm là một trình tạo (generator) không đồng bộ, trả về một Stream của các giá trị thay vì một giá trị đơn lẻ.async* được sử dụng để tạo ra một hàm trả về nhiều giá trị trong tương lai, mỗi kết quả được...middle