因此,我具有以下功能,但是当我调用保存组件时,实际上只有最后一个条目保存到数据库中。

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();
}


我将如何获取保存以异步方式调用,以便所有条目都保存在数据库中?

最佳答案

似乎与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");
    }
}

关于javascript - 使用Node.js异步保存到dynamodb,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40051139/

10-17 02:50