我试图从服务中检索数据并将结果存储在一个数组中以便存储为JSON,由于我使用的数据结构,我需要嵌套{{1以这种方式:
代码:
Async.Whilst
正如我所提到的,我希望一个Object将它保存在我的数据库中的JSON中,如下所示:
预期结果:
var async = require('async');
var response = {};
async.whilst(function(){
if(category <= externalCategory){
category++;
return true;
}else{
return false;
}
},function(outerCallback){
response[category] = [];
async.whilst(function(){
if(data == "pass"){
return true;
}else{
//retry
return false;
}
},function(callback) {
var data = {
//Retrieved data
};
response[category].push(data);
callback();
},function () {
outerCallback();
});
},function(){
next(null, response);
});
但是,我继续让所有的Object填充我推送的数组的最后一个值:
实际结果:
response:{
0:[dataA, dataB],
1:[dataC, dataD, dataE],
2:[dataF],
3:[dataG, dataH]
}
我是Node.js中asynchronus编程的新手,所以我对嵌套异步函数以及为什么会出现这种情况感到困惑,有什么帮助或替代方案吗?
答案 0 :(得分:0)
我希望您的问题可以通过使用async获取索引值的'eachOfSeries'来解决,这样您就可以避免嵌套异步并且eachOfSeries是串行操作。所以不要担心asynchronus