Bookshelfjs多次更新数据未return承诺
Bookshelfjs multiple update data not return promise
我想更新多行到我的数据库。我的问题是承诺不是 return 任何东西。它保存成功但没有 return 任何东西。
这里是我的代码示例:
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)
})
});
});
})
我正在使用 bluebird promise。
我尽量使我的代码与您的代码接近。我确实按照您的要求做了,所以看看您是否可以使用它。
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'
});
});
});
})
让我知道这是否适合你。
我想更新多行到我的数据库。我的问题是承诺不是 return 任何东西。它保存成功但没有 return 任何东西。
这里是我的代码示例:
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)
})
});
});
})
我正在使用 bluebird promise。
我尽量使我的代码与您的代码接近。我确实按照您的要求做了,所以看看您是否可以使用它。
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'
});
});
});
})
让我知道这是否适合你。