Redis
 sql >> Datenbank >  >> NoSQL >> Redis

Warten Sie, bis alle Versprechen in nodejs mit Bluebird abgeschlossen sind

.map ist hier praktisch:

loadActiveChannels: function() {
    return Knex('game_channels as ch')
    .where('ch.channel_state', '>', 0)
    .map(function(channel) {
        return redis.hmsetAsync("channel:"+channel.channel_id, _.omit(channel, 'channel_id'))
    }).then(function(res) {
        console.log(res);
    })
}

Der Grund, warum Sie mit Ihrem Originalcode keine Ausgabe erhalten, liegt darin, dass Sie promises.push[promise]; haben was promises.push(promise) hätte sein sollen