У меня есть Redis с большим количеством ключей в некотором формате, и я хочу получить ключи, которые соответствуют некоторому шаблону и выполнять некоторые операции над ними. Я не использую метод KEYS, так как он не рекомендуется в производстве. Использование SCAN. Мне интересно, как лучше всего написать код. Я должен сделать что-то вроде время цикла, но с помощью обещаний, мое текущее решение выглядит следующим образом (код упрощен немного):Использование Redis SCAN в NODE
'use strict'
const Promise = require('bluebird');
const config = require('./config');
const client = require('./clinet');
let iterator = 0;
Promise.coroutine(function*() {
do {
iterator = yield clinet.scanAsync(iterator, 'myQuery', 'COUNT', config.scanChunkSize)
.then(data => {
let nextIterator = data[0];
let values = data[1];
//do some magic with values
return nextIterator;
})
} while (iterator !== '0');
})();
Есть ли лучший способ сделать это, что я не хватает?
Поскольку в «do magic line» у меня много операций, основанных на обещаниях, я хотел избежать передачи обратных вызовов и смешивания, но сделать это более дружелюбно. – Madbrush