Как лучше всего дождаться завершения всех обещаний в nodejs с помощью bluebird? Допустим, я хочу выбрать записи из базы данных и сохранить их в Redis. я придумал это
loadActiveChannels: function() {
return Knex('game_channels as ch')
.where('ch.channel_state', '>', 0)
.then(function(channels) {
var promises = [];
for(var i=0; i<channels.length; i++) {
var promise = redis.hmsetAsync("channel:"+channels[i].channel_id, _.omit(channels[i], 'channel_id'))
promises.push[promise];
}
return Promise.all(promises);
}).then(function(res) {
console.log(res);
})
}
Не уверен, работает ли он так, как я ожидаю. Все записи находятся в Redis, но console.log показывает пустой массив. Разве он не должен содержать массив «ОК», поскольку это сообщение, которое Redis возвращает после выполнения обещания? Что мне здесь не хватает?
for
на.map()
. - person SLaks   schedule 02.02.2014