Zvi*_*Zvi 5 javascript node.js promise express sequelize.js
我有一系列项目,需要将它们创建到数据库。
我需要检查每个插入是否成功,以便将 item + success = true 作为 json 插入到新数组(结果)中。
如果创建失败 - 在(结果)项目之前插入到同一个数组 + 成功 = false。
这是代码:
create_cards: function (filter_id, is_filter, cards) {
var result = [];
var curr_card = null;
for (var card in cards) {
curr_card = this.create( {
filter_id: filter_id,
template: card.template,
state: card.state,
question_id: card.question_id || -1,
answers: card.answers || -1,
description: card.description || -1,
correct_answer: card.correct_answer || -1
}).then(function(card) {
result.push({card: JSON.stringify(card.dataValues), success: true})
},function(err) {
result.push({card: card.dataValues, success: false})
});
}
return results;
}
Run Code Online (Sandbox Code Playgroud)
现在,2个问题:
循环结束后有“返回结果”,但我得到空数组.. 我应该如何在每次创建后进行批量创建和创建,以确保创建是否成功?
我应该如何在错误函数中获取卡?我只得到“错误”作为拒绝函数的变量。
谢谢!
create_cards: function(filter_id, is_filter, cards) {
var result = [];
var promises = cards.map(function(card) {
return this.create({
filter_id: filter_id,
template: card.template,
state: card.state,
question_id: card.question_id || -1,
answers: card.answers || -1,
description: card.description || -1,
correct_answer: card.correct_answer || -1
})
.then(function() {
result.push({
card: card,
success: true
});
})
.catch(function(err) {
result.push({
card: card,
success: false
});
return Promise.resolve();
});
});
return Promise.all(promises)
.then(function() {
return Promise.resolve(result);
});
}Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7172 次 |
| 最近记录: |