Я пытался протестировать скрученные функции обратного вызова и увидеть, что код ниже работает.Однако, когда я удаляю @inlineCallback
в коде, я не вижу напечатанного сообщения «Hello» и, кажется, никогда не выполняется.
Если я использую функцию hello
без цикла for внутри, то она печатает«Привет» без @inlineCallback
декоратора.Как это возможно?
Если оператор yield
не существует, он выполняется нормально;однако, если в функции существует оператор yield
, то он выполняется только тогда, когда отмечен @inlineCallback
.
Как это возможно ??
from autobahn.twisted.component import run
from autobahn.twisted.util import sleep
@inlineCallback
def hello():
print "Hello"
for i in range(0, 3):
print "Hello", i
yield sleep(1)
reactor.callLater(1, hello)
reactor.run()