var ccc='';
var array =[ '3', '4', '1', '2' ];
for (i = 0; i < array.length; i++) {
client.get(array[i], function (err, ddd) {
ccc+=ddd;
});
}
console.dir(ccc);
例如 因为异步问题 输出的一直是空 我应该怎么改 贴代码 高分
我要得到通过数组里的值 在循环后的相加值
帅锅,代码贴完整,不然看不懂;
client.get方法是异步的么?你可以考虑把console.dir放在异步回调里面哇。。
你都知道是异步调用了,console.dir(ccc)和你for (i = 0; i < array.length; i++) {
client.get(array[i], function (err, ddd) {
ccc+=ddd;
});
}是同时执行的,ccc还没累加,打印就结束了,你需要把他写到回调函数里面,的到的结果或者后面的处理逻辑有放在回调函数中
对了你用过AJAX不,silverlight这些都是异步操作,是一样的哦
var ccc='';
var array =[ '3', '4', '1', '2' ];
var func = function(i){
client.get(array[i], function (err, ddd) {
ccc+=ddd;
i++;
if(i < array.length){
func(i);
}
else{
console.dir(ccc);
}
});
}
func(i);