我将共享代码直接的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