Xin lỗi, đơn giản là không thể.
Có một số trường hợp một hàm trả về new Future.immediate(value)
và hình dung bạn có thể nhận được giá trị, nhưng:
- Đây không phải là một trong những trường hợp đó. Các tiến trình được chạy hoàn toàn không đồng bộ bởi máy ảo.
- Khả năng truy cập trực tiếp giá trị của tương lai đã bị xóa trong bản cập nhật libv2.
Cách xử lý này là có chức năng chứa Process.run()
trả về Tương lai và thực hiện tất cả logic của bạn trong hàm gọi lại, có vẻ như bạn biết, vì vậy tôi giả định rằng mã của bạn ở đây chỉ là một ví dụ và bạn không thực sự làm điều này trong main()
. Trong trường hợp đó, thật không may, bạn về cơ bản không may mắn - bạn phải làm cho chức năng của bạn không đồng bộ nếu bạn phụ thuộc vào việc biết giá trị tương lai hoặc hoạt động đã hoàn thành.
Không đồng bộ trong môi trường một luồng, như Dart và Javascript, là vi-rút và luôn truyền bá ngăn xếp cuộc gọi của bạn. Mỗi hàm gọi hàm này và mọi hàm gọi chúng, v.v., phải là không đồng bộ.
Nguồn
2013-02-11 21:24:48
Tôi không thấy cách dễ dàng để thực hiện điều đó. Vấn đề với việc sử dụng gọi lại là gì? Bạn chỉ đang cố gắng làm giảm gọi lại lồng nhau? –
Chỉ muốn biết liệu có thể. – Leksat