运行代码时,我得到的Python3龙卷风不能正确屈服?
ERROR:tornado.application:Future exception was never retrieved: Traceback (most recent call last): File "C:\Users\Ben\AppData\Local\Programs\Python\Python36\lib\site-packages\tornado\gen.py", line 1069, in run yielded = self.gen.send(value) File "C:\Users\Ben\Documents\GitHub\app-development\server\server.py", line 20, in serve self.write(r) File "C:\Users\Ben\AppData\Local\Programs\Python\Python36\lib\site-packages\tornado\web.py", line 708, in write raise RuntimeError("Cannot write() after finish()") RuntimeError: Cannot write() after finish()
错误为什么会出现这种情况?我引用这个question(第二个答案) 我相信我正确使用yield语句。
class MainHandler(tornado.web.RequestHandler):
executor = ThreadPoolExecutor(max_workers=64)
def get(self):
task = self.get_argument('task')
self.serve(task)
@tornado.gen.coroutine
def serve(self, task):
method = getattr(self, task)
r = yield method()
self.write(r)
@run_on_executor
def announcements(self):
time.sleep(5)
print("Done")
with open('announcements.json') as announce_data:
data = json.load(announce_data)
print(data)
return data