Это потому, что client.hexists
является асинхронным, поэтому, когда выполняется обратный вызов, цикл for уже завершен.Самый простой способ исправить это - отключить функцию:
function getIfExists(tag) {
client.hexists('tags', tag, function(err,rep) {
if(rep===1){
client.hget('tags',tag,function(err,rep) {
console.log('value:'+rep);
});
}
});
}
Кроме того, синтаксис javascript for... in...
не оптимален для массивов.
for(var i = 0, len = tags.length; i < len; i++) {
getIfExists(tags[i]);
}
Или вы можете использовать Array.prototype.forEach
:
tags.forEach(getIfExists);
Тем не менее, я не уверен, почему вы вообще делаете hexists
?Вы можете просто hget
это, вы получите null
или значение.