扭曲的inlinecallbacks问题

时间:2015-01-09 14:06:11

标签: python-2.7 twisted deferred

我正在编写扭曲的代码..第一个与延迟的第二个使用inlineCallbacks。第一个工作,但第二个没有...任何想法或指针

class Echo(LineReceiver):

    def lineReceived_callbacks(self, line):
        print self.sendLine("i received :%s"%line)
                    def pp(res):
            print "from callback",res
            self.sendLine(str(res))

        d = self.factory.dbs.getResult(line)
        d.addCallback(pp)

    @defer.inlineCallbacks
    def lineReceived(self, line):
       res = yield self.factory.dbs.getResult(line)
       print res
       self.sendLine(str(res))

self.factory.dbs.getResult(line)会返回延迟。

1 个答案:

答案 0 :(得分:-1)

得到解决方案..

似乎是扭曲的问题。 http://twistedmatrix.com/pipermail/twisted-python/2006-October/014277.html

如果lineReceived返回延迟连接drop in defer示例deferred已创建但未返回,并且在第二个因为使用inlineCallbacks,它返回deferred always因此连接drop .. lineReceived是基本的东西,应该可以使用inlineCallbacks ..