我正在使用 Redis 为我在内存中存储的模型生成 ID。Redis 客户端需要回调INCR
命令,这意味着代码看起来像
client.incr('foo', function(err, id) {
... continue on here
});
问题是,我已经编写了应用程序的另一部分,它希望incr
调用是同步的并且只返回 ID,这样我就可以像使用它一样
var id = client.incr('foo');
我遇到这个问题的原因是,到目前为止,我只是在内存中使用简单的闭包计数器函数生成 ID,比如
var counter = (function() {
var count = 0;
return function() {
return ++count;
}
})();
简化测试和一般设置。
这是否意味着我的应用程序在设计上存在缺陷,我需要重写它以期望在生成 ID 时进行回调?还是有任何简单的方法来同步呼叫?