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'
            });

        });
    });
})

让我知道这是否适合你。