所以我有以下功能但是当我只调用保存组件时,最后一个条目实际上是保存到数据库。
var shortid = require('shortid'),
dynamodb = new AWS.DynamoDB();
setupComponents: function(args) {
console.log(args)
if (args["componentName"] && args["apiKey"] !== null){
var apiKey = args["apiKey"]
for (i = 0; i < args["componentName"].length; i++) {
console.log(args["componentName"][i]);
var componentName = args["componentName"][i];
saveComponent(componentName, apiKey);
}
} else {
console.log("NULL FOUND");
}
},
function saveComponent(args, apiKey) {
var o = new SoftwareComponent({
_id: shortid.generate,
componentName: args,
versionName: "default",
stepName: "default",
timeInMS: "default",
stepResult: "default",
notes: "default",
apiKey: apiKey
});
console.log(o)
o.save();
}
如何保存以便异步调用,以便所有条目都保存在数据库中?
答案 0 :(得分:1)
看起来像javascript闭包的问题。尝试。
setupComponents: function (args) {
console.log(args);
if (args["componentName"] && args["apiKey"] !== null) {
var apiKey = args["apiKey"];
var arr = args["componentName"];
arr.forEach(function(item, index){
console.log(item);
saveComponent(item, apiKey);
});
} else {
console.log("NULL FOUND");
}
}