2016-06-23 62 views
0

我使用Tornado的AsyncHTTPClient多次獲取URL。每次請求都會傳遞不同的回調。做龍捲風AsyncHTTPClient獲取回調調用請求或響應的順序?

如果我發送請求A,B(帶有相關的回調Callback_A和Callback_B)到一個URL,但響應以相反的順序返回B,答:我應該期望按照Callback_A的順序調用回調, Callback_B還是會按照相反順序呼叫?

我想要以響應順序調用回調(所以Callback_B,Callback_A)。如果這不是默認行爲,是否有辦法做到這一點呢?

回答

0

回調在他們等待的事件完成後儘快執行。所以,他們按響應順序被調用。

+0

所以你期望看到Callback_B和Callback_A?我只是測試了2個URL,其中一個遠在中國,另一個靠近(在我的內部網),依次排列。回調傳遞給第一個打印的更遠的回調。所以這似乎意味着唯一重要的順序是請求中的一個(即回調被傳遞給'fetch()'調用的順序)。 –

+0

回調在他們等待的事件完成後儘快執行。所以,他們按響應順序被調用。如果您共享Minimal,Complete和Verifiable示例(http://stackoverflow.com/help/mcve),我們可能會看到您是否犯了一個錯誤。 –

+0

好吧,我在我的代碼中發現了錯誤。重做測試發送3名去抓取到一個遙遠的服務器,監視他們的Wireshark乃至回調被調用正確的順序,這是響應順序。再次感謝AJ。 –