nodejs异步执行问题
发布于 2年前 作者 didiaoyu 1369 次浏览
我使用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 好的,谢谢!

回到顶部