2012-07-26 10 views
10

बस टॉरनाडो के एसिंक फ़ंक्शन का उपयोग करने का प्रयास करना - मैं अपने हैंडलर से एक विधि का आह्वान करना चाहता हूं लेकिन यह मुझे बताता है कि इसे "अप्रत्याशित कीवर्ड तर्क 'कॉलबैक मिला है।एक साधारण फ़ंक्शन के लिए टर्नडोडो के साथ gen.task का उपयोग करके

class MyHandler(tornado.web.RequestHandler): 

    @asynchronous 
    @gen.engine 
    def get(self): 
     response = yield gen.Task(self.dosomething, 'argument') 
     self.write(response) 
     self.finish() 

    def dosomething(self, myargument): 
     pass 

उत्तर

20

गैर-अवरुद्ध फ़ंक्शन को कॉलबैक की आवश्यकता होती है, जहां यह परिणाम पास करता है।

class MyHandler(tornado.web.RequestHandler): 

    @asynchronous 
    @gen.engine 
    def get(self): 
     response = yield gen.Task(self.dosomething, 'argument') 
     self.write(response) 
     self.finish() 

    def dosomething(self, myargument, callback): 
     return callback(myargument) 
+0

धन्यवाद! मेरी इच्छा है कि त्रुटि संदेश इंगित करेगा कि यह गायब था, ऐसा नहीं कि उसे 'कॉलबैक' मिला। चीयर्स :) –

+0

हाय, मैं जानना चाहता हूं कि आपने वास्तव में गैर-अवरुद्ध होने के रूप में अभिनय कैसे किया? क्या आपने कोई थ्रेडिंग/अन्य तंत्र लागू किया है ताकि यह अवरुद्ध न हो? – giga

संबंधित मुद्दे

 संबंधित मुद्दे