nodejs异步执行问题
我使用nodejs碰到了一个异步的问题,如下方法,去某个网页获取页面上的ip地址,并返回
function getIps(url){
var ips = "";
http.get(url, function(res){
var ipHtml = "";
res.on("data", function(d){
ipHtml += d;
});
res.on("end", function(){
var reg = /[0-9]{1,3}(\.[0-9]{1,3}){3}/gim;
ips = ipHtml.match(reg);
return ips;
});
});
};
但是调用var ip = getIps(url); 一直返回undefined, 因为返回值的时候res.on里的代码还没执行完,所以造成这个结果, 请问如何才能把正确的ips返回!谢谢!
5 回复
function getIps(url,callback){
var ips = "";
http.get(url, function(res){
var ipHtml = "";
res.on("data", function(d){
ipHtml += d;
});
res.on("end", function(){
var reg = /[0-9]{1,3}(\.[0-9]{1,3}){3}/gim;
ips = ipHtml.match(reg);
callback(ips);
//return ips;
});
});
};
getIps("http://127.0.0.1:8080",function(ips){
console.log(ips);
});
嗯,谢谢,暂时只能这样了! 我本来事项把ips当做变量返回的,也没别的好办法!
@didiaoyu 有,google搜windjs,如果有兴趣的话,
@151263 好的,谢谢!
@didiaoyu 不客气