node.js redis smembers 同步

标签 node.js redis sync

我想知道是否有可能用 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)

输出:

start
0
10

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

我该如何解决这个问题?

最佳答案

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

var callback=function(res){
    retrived=retrieved.concat(res);
    //continue do other things
};

client.smembers("offer", function (err, replies) {
    if(!err){
        callback(replies);
    }
})

如果你想在一个循环之后做一些事情,你可以试试underscore.js_.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

关于node.js redis smembers 同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25580690/

相关文章:

javascript - 替换 JavaScript 中的引号

node.js - 我应该如何在 NodeJS 中存储文件

php - 如何在php中查看类redis的功能

mediawiki - 如何在两个 Mediawiki 安装之间同步内容?

node.js - 为什么我们不能在 Express.js 中做多个 response.send?

node.js - 如何解决 : premature close at onclosenexttick in Node. js 服务器?

database - 你将如何获得最后 10 个键的 redis?

security - 创建 AWS EC2 安全组以实现 Redis 互通

linux - 在多台计算机 (Mac) 之间同步工作环境的最佳方式

hadoop - 如何将Hadoop配置文件同步到多个节点?