这是我正在测试的代码,它不会每次都返回响应。就像我跑20次一样,只有一次我能得到身体的输出。其他时候,我没有输出任何内容,甚至没有看到任何错误消息。
我想这是因为请求运行得太快而无法获得响应。
有人可以帮我吗? 感谢。
get_from_google : function (callback) {
request('http://www.google.com', function (error, response, body) {
if (!error && response.statusCode === 200) {
console.info('Success');
callback(body);
//console.log(body); // Show the HTML for the Google homepage.
} else {
console.info('Failed');
//console.log(body)
}
console.info('google request')
}).on('body',function (body) {
callback(body);
})
}
我在函数中添加了输出(错误,响应,正文),如下所示。但没有任何结果。
get_from_google : function (callback) {
request('http://www.google.com', function(err, res, body) {
console.info('In the callback');
if (err)
return callback(err);
if (res.statusCode === 200) {
callback(new Error('Nothing got back'), body);
} else {
callback(new Error('Unexpected status code: ' + res.statusCode));
}
});
}
以下是控制台中的输出:
Starting selenium standalone server...
[launcher] Running 1 instances of WebDriver
Selenium standalone server started at http://10.33.203.210:53537/wd/hub
Started
.
Ran 1 of 3 specs
1 spec, 0 failures
Finished in 0.019 seconds
Shutting down selenium standalone server.
[launcher] 0 instance(s) of WebDriver still running
[launcher] chrome #01 passed
Process finished with exit code 0
答案 0 :(得分:0)
这里有一些问题:
body
事件处理程序是不必要的,因为您已经有另一个回调。(err, result[, ...resultn])
的节点式回调签名。考虑到这些因素,您可以尝试以下方式:
get_from_google: function(callback) {
request('http://www.google.com', function(err, res, body) {
if (err)
return callback(err);
if (res.statusCode === 200) {
callback(null, body);
} else {
callback(new Error('Unexpected status code: ' + res.statusCode));
}
});
}