Знаете ли вы способ использования команды множественных транзакций клиента redis с обещаниями bluebird?Redis multi с обещаниями bluebird
Потому что следующий код никогда не заканчивается.
var $redis = require('redis'),
$p = require('bluebird'),
$r = $p.promisifyAll($redis.multi());
$r.setAsync('key', 'test')
.then(function(reply, data) {
// ...
});
$r.exec(function() {
$r.quit();
process.exit();
});
спасибо. Есть ли более элегантные решения? Что делать, если кому-то также нужно добавить дополнительные команды после $ r.pfaddAsync и не связано с pfaddAsync, но в конце нужно вызывать $ r.exec? –
Нет, 'то' уже довольно изящный. Если вы хотите вызвать несколько независимых асинхронных функций и хотите дождаться их всех (прежде чем переходить к '$ r.exec'), вы можете использовать [' Promise.all'] (https://github.com/ petkaantonov/bluebird/blob/master/API.md # все --- пообещано) – Bergi
не работает. консольный процесс просто зависает ... –