回调NodeJS

时间:2018-08-01 11:44:23

标签: node.js callback wait

就像每个使用异步技术的新程序员一样,我想先完成一些任务。 然后,我对该主题进行了研究,许多来自其他语言的人谈到了我自己的回调并写了这样的内容:

function persistMAP(jsonData, callback, res) {
  //Deck persistance
  for (var i = 0; i < 1; i++) {
    (function(i) {
      var rowData = new DeckDatabase({
        _id: new mongoose.Types.ObjectId(),
        DeckNumber: Number(jsonData.Deck[i].DeckNumber),
        x: Number(jsonData.Deck[i].x),
        y: Number(jsonData.Deck[i].y),
      });
      rowData.save(function(err) {
        if (err) return console.log(err);

        for (var i = 0; j = jsonData.Units.length, i < j; i++) {
          (function(i) {
            console.log(jsonData.Units[i]);
            var unit = new MapDatabase({
              UnitID: jsonData.Units[i].UnitID,
              TypeID: Number(jsonData.Units[i].TypeID),
              x: Number(jsonData.Units[i].x),
              y: Number(jsonData.Units[i].y),
              _id: mongoose.Types.ObjectId(((jsonData.Units[i].Code).toLowerCase()) + 'dd40c86762e0fb12000003'), // mongoose.Types.ObjectId(jsonData.Units[i].Code + 'dd40c86762e0fb12000003')
              MainClass: jsonData.Units[i].MainClass,
              Orientation: jsonData.Units[i].Orientation,
              Postion: jsonData.Units[i].Postion,
              Deck: String(rowData._id)
            });

            unit.save(function(err) {
              if (err) return console.log(err);
            });
          })(i);
        }

      });

    })(i);
  }

  callback(res);
};


persistMAP(data, function(res) {
      //Now do my other task  });

但是它不起作用...我的意思是我的回调仍然在我的代码执行的同时执行。 所以我想知道是否可以使用nodeJS,因为目前我正在使用Timeout函数...

0 个答案:

没有答案