问题描述
我刚刚开始使用 Javascript 和 Node,异步和回调概念不是我现在可以控制的。
我必须为文档数组的每个元素调用一个函数。此函数将调用 DB 并为我获取文档注释数组。我想获取所有注释并将它们放在同一个数组中。类似的东西:
Plot[][] farm = new Plot[4][3];
for (int i = 0; i < farm.length; i++) {
for (int j = 0; j < farm[i].length; j++) {
farm[i][j] = new Plot("barren",0);
}
}
关于 getAnnotationsFromDocument 函数,这是它的简化结构:
//function in an async waterfall
function(docs,callback){
let annotationsArray = [];
async.each(docs,(doc,callback2) => {
getAnnotationsFromDocument(doc.Id,callback2);
},function (err,annotations){
if (err){
callback(err);
}
annotationsArray = annotationsArray.concat(annotations);
callback(null,annotationsArray);
});
},//Next waterfall function
不幸的是,我无法正确编码。在退出 async.each 之前,我无法从函数中获取结果。有人能解释一下如何为此构建代码吗?
调试我发现函数 getAnnotationsFromDocument 获取数据并正确执行最后一个 callback(null,result);,但是当我到达 function (err,annotations){ ,注释未定义。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)