下午所有,
我是一个非常新的NodeJS程序员(三周经验),我真的很难用下面的代码:
var bodyParser = require('body-parser');
var async = require('async');
var async2 = require('async');
var async3 = require('async');
function updateJSONSubmission(submission, mainCallback) {
async.each(submission.list, function(topItem, outerCallback) {
console.log("Outer Loop ");
async2.each(topItem.fields.formFields, function(midItem, midCallback) {
console.log("Middle Loop " + midItem.fieldId.type);
if (midItem.fieldId.type === "signature" || midItem.fieldId.type === "photograph") {
async3.each(midItem.fieldValues, function(innerItem, innerCallback) {
console.log("Inner Loop " + innerItem.contentType);
if (innerItem.contentType === "base64") {
console.log("Found result: " + innerItem.fileName);
innerItem.base64Image = innerItem.fileName;
innerCallback(null, innerItem);
}
}, function(err) {
midCallback(null, midItem);
});
}
}, function(err) {
outerCallback(null, topItem);
});
}, function(err) {
//all loops complete
if (!err) {
console.log("Done");
mainCallback(null, submission);
}
});
}
基本上我正在尝试遍历许多JSON数组。当我正在调试时,第一个async.each完成后我遇到了问题 - 我希望这会输入下面的代码,但不是:
function(err) {
//all loops complete
if (!err) {
console.log("Done");
mainCallback(null, submission);
}
我确信我刚刚收到一些关闭/回调错误,但这让我心理上试图找到它。
非常感谢任何帮助。
由于
答案 0 :(得分:1)
如果您的条件if (midItem.fieldId.type === "signature" || midItem.fieldId.type === "photograph")
为false,则永远不会调用midCallback
。
与if (innerItem.contentType === "base64")
此外,您不需要多次要求async
个模块。需要一次,然后简单地使用它。
const async = require('async');
async.each(obj, (data) => {
async.parallel([]);
});