想请教一下参数的传递
发布于 3年前 作者 hades 1350 次浏览

options

        http.get(o, function(res) {
            //console.log(o + '1111');
        }).on('error', function(e) {
            console.log('Got error: ' + e.message);
        });

想请教一下options怎么传进去? 因为想在回递函数里调一些数据。

7 回复

怎么传进去?你的options不是在http外面的嘛?直接用就行啊

你是不是遇到了回调函数里打印出来的 o 和 get 请求里发送时不一致的问题?如果是的话,可以通过闭包来解决:

 (function(o) {
    http.get(o, function(res) {
        console.log(o);
    }).on('error', function(e) {
        console.log('Got error: ' + e.message);
    });
})(options);

把 options 传给 o,之后 o 的值就不会受到外界的影响了,在回调函数里使用的时候仍能保持 get 请求发送时的值

var http = require("http");

var process = function(){

for(var i = 0; i < 10; i++){
    Options = {
        //....
        a:'' //这个是自己定义的 
    };
    Options.a = i;
    http.get(Options, function(response){
        ///BBBB
        console.log(Options.a);//这个是我想调用的。
    });
}

}

sumory谢谢你之前的回复,但是不知道为什么Options定成全局的函数内///BBBB处的Options.a取的结果都是1

sumory, XiongLiding非常感觉你们的帮助,已经搞定,谢谢。

我之前也遇到过,一不小心就会遇到这个问题,看下闭包,理解清楚js作用域就会避免这种问题了。

对了,还要注意回调是异步的,for结束时,所有的get不一定结束了

@sumory 好的谢谢你。

回到顶部