我想将多行更新到我的数据库。我的问题是承诺不会返回任何东西。它成功保存但不返回任何内容。
我的代码示例:
doUpdate: Promise.method(function (data) {
var self = this;
var jsonData = JSON.parse(data);
return Bookshelf.transaction(function (t) {
return _.each(jsonData, function (value, key) {
var queryMatch = {
id: value.id,
id2: value.id2
};
return self.forge(queryMatch)
.fetch({transacting: t})
.then(function (data) {
return data.save({content: value.newValue});
})
.catch(function(error) {
console.log(error)
})
});
});
})
我正在使用蓝鸟承诺。
答案 0 :(得分:0)
我尽量让我的代码尽可能地靠近你的代码。我确实设法按照你的要求做了,所以看一看你能用的东西。
doUpdate: Promise.method(function(data) {
var Self = this;
var jsonData = JSON.parse(data);
return bookshelf.transaction(function(t) {
return Promise.each(jsonData, function(value, key) {
var queryMatch = {
id: value.id,
id2: value.id2
};
return new Self(queryMatch).save({
content: value.newValue
}, {
transacting: t,
method: 'update'
});
});
});
})
请告诉我这是否适合您。