node.js - 回调 NodeJS
问题描述
像每个使用异步技术的新程序员一样,我想先完成一些任务。然后我对该主题进行了研究,许多其他语言的人谈到了我自己的回调并写了这样的东西:
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 });
但它不起作用......我的意思是我的回调(res)仍然与我的代码同时执行。所以我想知道nodeJS是否可能,因为目前我正在使用超时功能......
解决方案
推荐阅读
- browser-detection - 防止 DotNetBrowser 中的 Canvas 指纹识别
- python - 如何使用 Python 使用数据框中的两个条件向 datetime 对象添加一天?
- sql - 有没有办法使用 Excel VBA 中的 SQL 查询对复合键上的两个表进行完全连接?
- reactjs - 将图像上传到 AWS S3 存储桶 ReactJS 时 POST 403 禁止 CORS 响应
- r - 在R中的数组中获取最大维度
- string - 声明 char 进行比较
- reactjs - react组件提示框或者useState或者useEffect
- amazon-web-services - 如何将安全组应用于 aws_elasticache_replication_group
- web - Solr:在关键字中搜索带/不带空格
- visual-studio - 将月份添加到给定日期