Dla pętli pobierz przedmioty z opóźnienia redis

Używam Node.js w / node_redis i przechodzę przez obiekt i przeglądam dane w Redis, a następnie zwracam wyniki.

Mam takie ustawienie:

        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);

Problem polega na tym, że przechodzi on przez pętlę przed zakończeniem wywołania redis. Tak więc wywołanie zwrotne jest wywoływane, zanim zostanie faktycznie zaktualizowane wartość całkowita. Wydaje się również, że z powodu opóźnienia pomija niektóre elementy.

Czy jest lepszy sposób na to poradzić?

Dziękuję Ci!

EDYTOWAĆ:

Ok, więc zaktualizowałem to tak:

   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++;
               });
           };
       }

Wygląda na to, że zadziała, wywołuje wywołanie zwrotne w odpowiednim czasie, jednak wydaje się, że tylko ostatni klucz jest w całości aktualizowany.