这两天被一个问题困扰住了。 比如 :我现在有一个ID数组, 每个ID都要向Server获取每个ID对应的一些数据,但是返回的数据不回告诉我这些数据是属于那个ID的。 如果按其他语言 一个同步就可以搞定。
但是Node是异步执行 我就不知道该如何处理了。
同一时间所有ID向Server并发获取数据。 之后所有数据返回时 怎么与他发送的Id对应起来?
我的写法是: (但是我感觉存在超多问题)
var ArrayID=[{id:xxxxxxx},{id:xxxxx},{id:xxxxxxx},******] //id数据很多
function getData( y ){
var i=y;
var req = http.request(Url_Connect,function (res){
res.on("data",function(chunk){
//获取数据
Array[i].data=chunk;
})
}
req.write(ArrayID[i]); //发送ID
req.end();
}//getData
for(i = 0; i<ArrayID.length,i++)
{
getData(i);
}
问题:1.如果http.request()方法的callback的回调方法会时 i 的值等于什么。
2.回调方法内部调用外部的值 会不会产生什么错误 并且 可以这样写么。
3.在我理解,回调方法:是吧回调函数 插入 执行队列中。 但是如果值插入了执行代码 , 那执行代码所依赖上下文变量 该怎么调用
就比如上文的 i 变量 他是定义在回调方法外部的。
我刚刚接触NodeJs. 期望大牛们多多关照 感激不尽。