Para bucle obtener elementos de redis delay
Estoy usando Node.js w / node_redis y estoy haciendo un bucle a través de un objeto y buscando datos en Redis, y luego obtengo resultados.
Lo tengo configurado de esta manera:
<code> for (var key in items) { if (items.hasOwnProperty(key)) { app.client.llen(items[key].id+'_click', function(err, total) { items[key].total = total; }); } } callback(items); </code>
El problema es que atraviesa, antes de completar la llamada a redis. Así que se llama a la devolución de llamada, antes de que se actualice realmente el valor total. También parece omitir algunos elementos debido a la demora.
¿Hay una mejor manera de manejar esto?
¡Gracias!
EDITAR:
Ok, así que lo he actualizado así:
<code> getTotal(function () { callback(items); }); getTotal = function (callback) { var count = 1; for (var key in items) { if (items.hasOwnProperty(key)) { app.client.llen(items[key].id + '_click', function (err, total) { items[key].total = total; if (items.length == count) { callback(); } count++; }); }; } </code>
Esto parece que funcionaría, activa la devolución de llamada en el momento adecuado, sin embargo, parece que solo la última clave se está actualizando por completo.