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