dub*_*tor 1 javascript http-status-codes node.js
我有这样的功能:
function getStatusCode(site){
var options = {
host: "127.0.0.1",
port: 8000,
path: site,
headers: {
Host: site
}
};
var status;
http.get(options, function(response) {
status=response.statusCode;
});
return status;
}
Run Code Online (Sandbox Code Playgroud)
如何在http.get完成工作时返回状态,如果超时(例如10秒)则返回null?
Dar*_*rov 10
node.js背后的整个想法是它的异步性质.您要做的是通过尝试使其同步来违反设计模式.
由于该get方法的异步性,您无法执行此操作.您只能在回调函数内操作状态代码.所以你getStatusCode不需要退货.您可以使用一个额外的参数来表示结果可用后调用的回调:
function getStatusCode(site, callback) {
var options = {
host: "127.0.0.1",
port: 8000,
path: site,
headers: {
Host: site
}
};
http.get(options, function(response) {
callback(response.statusCode);
});
}
Run Code Online (Sandbox Code Playgroud)
然后:
getStatusCode('http://...', function(statusCode) {
alert(statusCode);
});
Run Code Online (Sandbox Code Playgroud)