繁体   English   中英

节点redis不喜欢function.apply()

[英]Node redis doesn't like function.apply()

我正在尝试将redis客户端包装在node中,但是使用.apply()调用node-redis函数时似乎出现了一些问题。 当我尝试执行此操作时,这会引起问题,而我可以解决该问题,但是现在async也正在使用.apply()调用其函数,这也导致了问题。

以下是我在做什么的简化:

var client = redis.createClient( myOptions );
function set(){
  // do other stuff
  client.set.apply( null, arguments );
}

但是,当我这样做时,出现以下错误:

TypeError: Cannot read property 'send_command' of null
    at RedisClient.(anonymous function).RedisClient.(anonymous function) (E:\sitesroot\0\node_modules\redis\lib\commands.js:45:24)

当我像这样手动传递参数时,代码可以完美工作:

function set( key, value ){
  // do stuff
  client.set( key, value );
}

但是,对于包装带有不确定数量参数的hgetall之类的方法,这种方法将行不通。

关于什么可能导致此的任何见解?

正如@Bergi在上面的评论中指出的那样,您在申请时需要传递正确的上下文。

client.set.apply( client, arguments );

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM