可以在调用成功回调后调用'on error'回调吗?

时间:2015-12-18 11:12:38

标签: javascript node.js econnreset

我在下面的代码中看到了一个奇怪的行为。

请求req成功时调用cb1。 之后再调用cb2,这似乎不对。

var result = {};

// populate options object

var req = https.request(options, function(response) {  // cb1
  callback(null, result);
});

req.on('error', function(err) {     // cb2
  callback(err, result);
});
req.setTimeout(30000); // 5 mins
req.setNoDelay(true);

if (requestBody) {
  req.write(requestBody);
}
req.end();

如果https请求已经成功( response.statuscode 在cb1中设置为200),是否可以在以后的同一个请求对象上调用“on error”处理程序?

使用

调用cb2函数
  

错误:读取ECONNRESET

我的假设是永远不会发生这种情况,因此'callback'有一些代码,如果对同一个传​​入请求调用两次,会导致我的服务器崩溃。

此外,我在https模块上使用以下2个设置。

https.globalAgent.maxSockets = 65000;
https.globalAgent.keepAlive = true;

keepAlive设置是否可能以某种方式保持与后端服务器的连接活动,并且当服务器终止此连接时,在同一个req对象上再次调用cb2?

0 个答案:

没有答案