首页 新闻 会员 周边 捐助

node 基础问题

0
悬赏园豆:200 [已关闭问题] 关闭于 2015-09-04 08:35
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);


例如 因为异步问题 输出的一直是空 我应该怎么改 贴代码 高分
问题补充:

我要得到通过数组里的值   在循环后的相加值

半哭半笑半颗心°的主页 半哭半笑半颗心° | 初学一级 | 园豆:3
提问于:2015-09-02 16:48
< >
分享
所有回答(4)
0

帅锅,代码贴完整,不然看不懂;

易猜 | 园豆:136 (初学一级) | 2015-09-02 17:05
0

client.get方法是异步的么?你可以考虑把console.dir放在异步回调里面哇。。

幻天芒 | 园豆:37207 (高人七级) | 2015-09-02 17:06
0

你都知道是异步调用了,console.dir(ccc)和你for (i = 0; i < array.length; i++) {

client.get(array[i], function (err, ddd) {

ccc+=ddd;

});
}是同时执行的,ccc还没累加,打印就结束了,你需要把他写到回调函数里面,的到的结果或者后面的处理逻辑有放在回调函数中

稳稳的河 | 园豆:4216 (老鸟四级) | 2015-09-02 17:51

对了你用过AJAX不,silverlight这些都是异步操作,是一样的哦

支持(0) 反对(0) 稳稳的河 | 园豆:4216 (老鸟四级) | 2015-09-02 17:53
1

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);

刘宏玺 | 园豆:14020 (专家六级) | 2015-09-02 20:02
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册