我正在从客户端向服务器发送10个请求,并在每个请求之后进入休眠状态。但是请求没有立即到达服务器。 也就是说,假设请求1在时间t1从客户端发送到服务器 请求2在时间t2从客户端发送到服务器,依此类推,直到请求10在时间t10从客户端发送到服务器。 但是所有10个请求都在时间t10之后到达服务器。在某个地方,所有请求都堆积在客户端,直到最后一个请求,然后在时间t10之后将所有10个请求发送到服务器,为什么会发生。 这是客户端的代码。
var request = require('request');
var sleep = require('sleep');
require('console-stamp')(console, '[ddd mmm dd yyyy HH:MM:ss.l]');
var myObj = {name: "John", age: 31, city: "New York"};
var myJSON = JSON.stringify(myObj);
for(var a = 1; a<=10;a++){
var url = 'http://localhost:8081/reqSer1/' + myJSON + '/' + a;
console.log("request send");
request.get(url , function (error, response) {
console.log('error:', error); // Print the error if one occurred
console.log(response.body);
// Print the response status code if a response was received
});
sleep.sleep(2);
}
答案 0 :(得分:0)
摘自sleep npm文档:
这些调用将通过停止Node.js来阻止所有JavaScript的执行 事件循环!
如果您需要绑定并发以免使服务器不堪重负,则应该能够: