想请教一下参数的传递
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 好的谢谢你。