Deferred
s là một cách tuyệt vời để xử lý không đồng bộ trong Twisted. Tuy nhiên, chúng giống như tên của nó, là các tính toán được hoãn lại, chỉ chạy và kết thúc một lần, kích hoạt các cuộc gọi lại một lần. Điều gì xảy ra nếu tôi có tính toán lặp lại, giống như một nút được nhấp? Có bất kỳ đối tượng nào giống như Deferred
có thể kích hoạt liên tục, gọi tất cả các cuộc gọi lại được gắn với nó bất cứ khi nào nó được kích hoạt?Xoắn: hoãn lại mà cháy liên tục?
Trả lời
Tôi đã thiết lập tính năng này ngay bây giờ. Đối với trường hợp sử dụng hạn chế của tôi nó làm những gì tôi muốn.
class RepeatedDeferred:
def __init__(self):
self.callbacks = []
self.df = defer.Deferred()
def addCallback(self, callback):
self.callbacks.append(callback)
self.df.addCallback(callback)
def callback(self, res):
self.df.callback(res)
self.df = defer.Deferred()
for c in self.callbacks:
self.df.addCallback(c)
Ai đó cho tôi biết nếu điều này thật khủng khiếp.
Những gì bạn có thể đang tìm kiếm là defer.inlineCallbacks
cho phép bạn sử dụng trình tạo để tạo chuỗi chuỗi trì hoãn tuần tự. Về cơ bản bạn chỉ có thể tạo ra một máy phát điện mà không bao giờ kết thúc (hoặc kết thúc có điều kiện) và tiếp tục tạo ra hoãn lại từ đó.
Có ghi chú tuyệt vời khi sử dụng inlineCallbacks
tại krondo.com.
tính năng tuyệt vời của heh. nhắc nhở tôi về các monads trong Haskell, kinda. Tôi không nghĩ rằng đó là những gì tôi đang tìm kiếm, mặc dù. tôi sẽ nghĩ về nó nhiều hơn khi nó không quá muộn – Claudiu
- 1. liên tục bị trì hoãn uninitialized :: Job
- 2. IcedCoffeeScript hoặc jQuery hoãn lại
- 3. Các kết nối cơ sở dữ liệu và xoắn Xoắn
- 4. Tải liên tục và Chrome. Buộc tải lại khó khăn
- 5. Trì hoãn với jQuery - khi() với hàm getJSON() gọi lại
- 6. Cuộn liên tục giữa UIPanGestureRecognizer và bật lại UIScrollView
- 7. sử dụng django và xoắn lại với nhau
- 8. Hủy lời hứa hoãn lại trong jQuery
- 9. SharedPreferences không liên tục
- 10. Có bị xoắn không?
- 11. Thực thi hoãn lại trong C#
- 12. mysqli kết nối liên tục
- 13. Đường liên tục Bash
- 14. mảng liên tục
- 15. Slicing một chuỗi liên tục
- 16. UILocalNotification cháy sau khi cài đặt lại ứng dụng
- 17. uninitialized liên tục ActiveSupport :: CoreExtensions
- 18. Greasemonkey Script Version liên tục
- 19. tích hợp liên tục python
- 20. Đọc liên tục từ luồng?
- 21. Tần suất xhr.upload.onProgress cháy như thế nào?
- 22. nét liên tục trong Clojure
- 23. Làm cách nào để tạo một cookie liên tục và không liên tục?
- 24. Số nguyên liên tục chạy
- 25. Emacs chế độ gấp liên tục
- 26. SDL_GL_SwapBuffers() liên tục bị chậm
- 27. Làm cho jQuery hoãn lại/Promises và AngularJS $ q Trì hoãn/Hứa hẹn tương thích
- 28. làm cho lịch trình Quartz liên tục tồn tại mà không cần JDBC
- 29. Đọc từ CSV trong Python liên tục?
- 30. Delphi dbgrid liên tục cuộn
Đó là nghĩa đen đã được bốn năm, nhưng ai đó đã cho tôi một rất thỏa đáng [ở đây] (http://stackoverflow.com/a/27996359/2419669). – yangmillstheory