Deferred
s sind eine gute Möglichkeit, asynchrone Verarbeitung in Twisted durchzuführen. Sie sind jedoch, wie der Name sagt, für zurückgestellte Berechnungen, die nur einmal ausgeführt und beendet werden und die Rückrufe einmal auslösen. Was passiert, wenn ich eine wiederholte Berechnung habe, etwa wie ein Knopf geklickt wird? Gibt es ein Deferred
-ähnliches Objekt, das wiederholt ausgelöst werden kann und alle Rückrufe aufruft, wenn es ausgelöst wird?Twisted: Deferred, die wiederholt ausgelöst wird?
Antwort
Ich habe das für jetzt eingerichtet. Für meinen begrenzten Anwendungsfall macht es das, was ich will.
Jemand ließ mich wissen, wenn das schrecklich ist.
Nach was Sie suchen könnten, ist defer.inlineCallbacks
, die es Ihnen ermöglicht, einen Generator zu verwenden, um eine sequenzielle Kette von Deferreds zu erstellen. Im Wesentlichen könnten Sie einfach einen Generator erstellen, der niemals endet (oder bedingt endet) und daraus weiterhin Deferred generiert.
Es gibt eine große Beschreibung auf inlineCallbacks
bei krondo.com.
heh tolle Funktion. erinnert mich an Monaden in Haskell, irgendwie. Ich denke nicht, dass es das ist, wonach ich suche. Ich werde darüber nachdenken, wenn es nicht so spät ist – Claudiu
- 1. WPF - LayoutUpdated Ereignis wiederholt ausgelöst
- 2. IE8 & IE7 onchange Ereignis erst nach Auswahl wiederholt ausgelöst wird
- 3. Kerndatenspeicherung wird wiederholt
- 4. Warum wird mein Javascript nur ausgelöst, wenn der Code wiederholt wird?
- 5. JSONP-Bildanforderung wird nicht wiederholt?
- 6. Wie wird dieser Code wiederholt?
- 7. Python twisted reactor - Adresse wird bereits verwendet
- 8. jQuery Deferred Auflösung früh
- 9. Deferred Shading DirectX-Demos?
- 10. Wann wird die before_action im Controller ausgelöst?
- 11. Warum wird die Ausnahme hier nicht ausgelöst?
- 12. Ereignis, wenn die Position: sticky ausgelöst wird
- 13. Warum wird die TaskScheduler.UnobservedTaskException nicht ausgelöst?
- 14. Warum wird hier die NullPointerException ausgelöst?
- 15. knockoutjs Auswahländerungsereignis wird ausgelöst, wenn die Bindung
- 16. jQuery Deferred und Dialogfeld
- 17. Verhindern, dass Klickereignis ausgelöst wird, wenn dblclick-Ereignis ausgelöst wird
- 18. Twisted callRemote
- 19. Wenn Validierungsausnahme ausgelöst wird?
- 20. SqlDependency wird sofort ausgelöst
- 21. Wann wird `componentDidMount` ausgelöst?
- 22. Wie wird ArrayIndexOutOfBoundsException ausgelöst?
- 23. OnNavigatedTo wird nicht ausgelöst?
- 24. Wie wird StSearch ausgelöst?
- 25. LoadControlState wird nicht ausgelöst
- 26. Deferred Deep Linking in Android
- 27. PostAuthenticateRequest wird mehrmals ausgelöst
- 28. Wie kann ich blockieren, bis Dojo Deferred aufgelöst wird?
- 29. js.erb wird nicht ausgelöst
- 30. commitEditingStyle wird nicht ausgelöst
Es ist buchstäblich vier Jahre, aber jemand gab mir eine sehr zufriedenstellende [hier] (http://stackoverflow.com/a/27996359/2419669). – yangmillstheory