【发布时间】:2016-12-06 18:02:57
【问题描述】:
我有一个项目数组,需要将它们创建到 DB。
我需要检查每个插入是否成功,因此将项目 + 成功 = 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;
}
现在,两个问题:
循环结束后有“返回结果”,但我得到空数组.. 每次创建后我应该如何进行批量创建和,以确保创建是否成功?
我应该如何在错误功能中获取卡?我只得到'err'作为拒绝函数的变量。
谢谢!
【问题讨论】:
-
你需要多练习一下 promise,
results是空的,因为在调用return results之前没有任何 promise 被解析 -
@AramilRey 我知道这一点,但我不知道如何管理所有的承诺和回报。无论如何,谢谢!
-
@Zvi 谢谢,对我帮助很大
标签: javascript node.js express promise sequelize.js