node.js redis同步化

我想知道是否有可能用node_redis同步检索redis的信息 。

_.each(seeds, function(subseed, key, list){ client.smembers(subseed, function (err, replies) { retrieved = retrieved.concat(replies) }) }) client.quit(); console.log("start") console.log(retrieved.length) 

OUTPUT:

 start 0 10 

所以它看起来像我需要以某种方式来达到时,它完成它的运行,或者在同步模式下运行smembers。

我怎么解决这个问题?

你为什么要让它同步? 如果你想在members之后做一些事情,只需在callback函数中完成。

 var callback=function(res){ retrived=retrieved.concat(res); //continue do other things }; client.smembers("offer", function (err, replies) { if(!err){ callback(replies); } }) 

如果你想在循环之后做一些事情,你可以试试_.after ,例如:

 var times=10; var arrayOfReplies=[]; //store all replies var callback=function(){ //do something with arrayOfReplies } var afterAll = _.after(times,callback); //afterAll's callback is a function which will be run after be called 10 times for(var i=0;i<10;i++){ client.smembers("offer", function (err, replies) { if(!err){ arrayOfReplies=arrayOfReplies.concat(replies); afterAll(); } }) } 

看更多: http : //underscorejs.org/#after