有一个数组results1,从数组取出每个数循环去查询数据库判断是否存在…如果存在添加到另一个参数data中, 最后循环操作完毕 把data2发送到前端。 已知数组results var telephone = results[0]; var data=’’; for( i = 1; i < results1.length; i++) { var recto=telephone.substr(0,7); mobileModel.Mobile.findOne({’YJPhone’:recto},function(err,mresult){ if(mresult){ data+=recto; } }
} res.send(data); 因为查询数据库是异步操作,data发送时为空;怎么取改写上面的代码?
是这样吧, var telephone = results[0]; results1.forEach(function (result){ var recto=telephone.substr(0,7); mobileModel.Mobile.findOne({’YJPhone’:recto},function(err,mresult){ if(mresult){ data+=recto; } } }
我在另一个贴中的回复: http://cnodejs.org/topic/524558f6f29c7bbd3c5c63c8
then.js的写法如下:
// url_list 为数组
then.each(url_list, function (defer, url) {
request(url, function (err, res, json) {
defer(err, json)
})
}).then(function (defer, result) {
// result 就是url获取的json结果数组,顺序与url对应
}).fail(function (defer, err) {
// 处理 err
})
https://github.com/teambition/then.js 目前teambition.com前端和angularjs.cn的后端采用的then.js