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 の生成時にコールバックを期待するように書き直す必要があるということですか? または、呼び出しを同期する簡単な方法はありますか?