我將共享代碼直接的NodeJS執行功能多發性次無延遲
app.get('/ListBooks', function (req, res) {
console.log("Function called");
//internally calls another URL and sends its response to browser
request({
url: 'someURLinRESTServer',
method: 'POST',
json: MyJsonData
}, function (error, response, body) {
if (error) {
console.log("/Call Failed ->" + error);
res.status(200).send('Failed');
} else {
console.log("/Call got Response");
console.log(response.statusCode, body);
res.send(body); res.end();
}
})
現在,當在瀏覽器產生http://localhost/ListBooks
我的節點控制檯上的一個請求顯示所述第一消息「函數稱爲「並等待內部REST URL響應
真正的問題只發生在RES牛逼服務器宕機
然後如果我嘗試調用http://localhost/ListBooks從其他瀏覽器選項卡中的節點服務器控制檯犯規表現出任何的改變,只有以前的功能REST調用的repsonse後把它顯示在應用第二函數調用的控制檯消息。得到(「/ ListBooks」
我以爲節點JS使得異步功能bt後這裏我硝基甲苯想要的功能等待喜歡這個多實例調用
,或只是在印刷消息的延遲和每個函數調用分別執行.Plz澄清...
這不是導致序列化的Express服務器。這可能是你打電話的其餘服務器。如果你可以登錄網絡,你會看到Express服務器獲得了兩個傳入的響應,併發出'request()'調用,並在request()調用得到結果後立即發送響應。所以,REST服務器本身可能會出現很大的延遲,而不是Express服務器。您需要確定REST服務器是否可以實際處理多個請求,一次對它們進行序列化。 – jfriend00
是僅當REST服務器關閉時纔會出現問題。 (抱歉,我忘記提及這個問題。nw編輯)否則請求和響應行爲事實和控制檯消息發生像正常 \t 並且當REST服務器關閉該功能不會執行第二個函數調用,直到它獲得第一個響應超時 – DrVishnu