gpt4 book ai didi

Python扭曲的defer和getProcessOutputAndValue问题

转载 作者:行者123 更新时间:2023-11-30 23:54:23 25 4
gpt4 key购买 nike

各位,这似乎是一个基本程序,我无法理解这里出了什么问题。运行时,程序只是等待,不会在控制台上输出任何内容,按 control-c 也不会输出任何内容。请指教。

我的理解是这样的:(i) Reactor 运行并且 callLater 导致 runProgram 在“0”秒后被调用。(ii) runProgram 从 getProcessOutputAndValue 获得延迟返回,我添加 Callback 和 Errback 以及reactor.stop() 作为“两者”回调。

我现在的期望是,当命令执行完成时,必须调用延迟的回调(或失败时的错误回调)。最后,由于指定了 addBoth,因此应该调用reactor.stop()来停止 react 器。

from twisted.internet.utils import getProcessOutputAndValue
from twisted.internet import reactor

def printResult(result):
print u'Result is %s' % result

def printError(reason):
print u'Error is %s' % reason

def stopReactor(r):
print u'Stopping reactor'
reactor.stop()
print u'Reactor stopped'

def runProgram():
command = ['lrt']
d = yield getProcessOutputAndValue('echo', command)
d.addCallback(printResult)
d.addErrback(printError)
d.addBoth(stopReactor)

reactor.callLater(0, runProgram)
reactor.run()

最佳答案

您不需要 yield - getProcessOutputAndValue 的返回值已经是Deferred

关于Python扭曲的defer和getProcessOutputAndValue问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5150211/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com