次のコードでredisのいくつかの非同期メソッドを実行しようとしています
var redis = require("redis");
var client = redis.createClient();
var async = require("asyncjs");
async.list([
client.hincrby("traffic:" + siteId, 'x', 1),
client.hincrby("traffic:" + siteId, 'y', 1),
client.hincrby("traffic:" + siteId, 'z', 1)
]).call().end(function(err, result)
{
console.log(err); // returns error [TypeError: Object true has no method 'apply']
console.log(result); // undefined
if(err) return false;
return result;
});
すべてのメソッドが正常に実行されます
しかし、私はエラーが発生します[TypeError: Object true has no method 'apply']
メソッドが実行されてtrueを返し、おそらくそれをtrueと解釈しますが、メソッドapplyを使用する必要がある理由がわかりませんか?
function(err, result) を最後の要素として client.hincrby に追加することで、インクリメントの結果を取得できます..しかし、end 関数の結果変数ですべての結果を取得するにはどうすればよいですか?