com*_*com 3 sync redis node.js
我不知道是否有可能实现与Redis的的smembers的同步检索node_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)
Run Code Online (Sandbox Code Playgroud)
输出:
start
0
10
Run Code Online (Sandbox Code Playgroud)
所以看起来我需要以某种方式在 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);
}
})
Run Code Online (Sandbox Code Playgroud)
如果你想有一个循环结束后做一些事情,你可以尝试_.after的underscore.js,例如:
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();
}
})
}
Run Code Online (Sandbox Code Playgroud)
查看更多:http : //underscorejs.org/#after
| 归档时间: |
|
| 查看次数: |
5452 次 |
| 最近记录: |