SignalR JS客户端:向invoke方法传递参数
SignalR JS client: passing arguments to the invoke method
我试图在对象appHub
中编写一个函数,该函数将调用服务器上的方法。下面是我的代码:
var connection = $.hubConnection();
var appHubProxy = connection.createHubProxy('appHub');
var appHub = {
//some methods here
invoke: function(){
appHubProxy.invoke.call(arguments);
}
}
可以看到,invoke
方法应该这样调用:
appHub.invoke('serverMethod', arg1, ..., argN)
当我运行这段代码时,我得到这个错误:
Uncaught TypeError: Cannot read property '_' of undefined
我尝试了appHubProxy.invoke(arguments)
,它不会抛出错误,但当然,服务器方法从未被调用。
我怎么能传递参数SignalR的调用方法正确?
两个问题:
- 当您使用
Function.prototype.call
或Function.prototype.apply
时,您需要传递的第一个参数是上下文(this
的值) - 如果你想以数组形式传递参数,你需要使用
apply
而不是call
在您的代码中,您使用数组作为上下文调用invoke方法。调用方法正在寻找一个嵌套的属性(可能是this.connection._
),它不存在于数组中,所以这就是为什么你得到错误。
所以你可能想用这个代替:
appHubProxy.invoke.apply(appHubProxy, arguments);
相关文章:
- 如何确保函数/方法参数为certian类型
- 我怎么能读“;.on()"jQuery中的方法参数
- Javascript 方法参数转义
- 对象属性来自方法参数时未定义
- 在 c# 中将多维 JavaScript 数组绑定为方法参数
- 如何通过javascript获取post()方法参数
- AngularJS$http://.NET Web API-获取400(错误请求)或NULL POST操作方法参数
- _.chain()中的方法参数
- springmvc:如何在没有控制器方法参数的情况下以mvc传递参数
- JSON作为null传递给方法参数
- Javascript,可以在没有 eval 的情况下传递未声明的方法参数
- 单词“in”是什么意思?在文档中的方法参数列表中
- 如何返回对象方法参数
- 实例变量vs方法参数
- 如何传递Json字符串作为javascript方法参数
- 将方法参数/参数传递给方法引用绑定,匿名,命名
- 不合逻辑的Passport验证方法参数
- 调试javascript方法参数
- 如何使用javascript获取方法参数的值
- Javascript在字符串模板中插入方法参数