Twisted: deferred that fires repeatedly?

Deferredis a great way to do asynchronous processing in Twisted. However, as the name implies, they relate to deferred calculations that are performed only once and are completed once, while triggering callbacks. What if I have recalculated how the button is pressed? Is there an-like Deferredobject that can fire multiple times, causing all callbacks attached to it whenever it is launched?

+5
source share
2 answers

I already asked it. For my limited use, it does what I want.

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)

- , .

+3

, defer.inlineCallbacks, . , , ( ), .

inlineCallbacks krondo.com.

0

All Articles