Javascript 使用apply向服务器发送多个参数
我正在angular中开发一个javascript客户端,它使用信号器与后端服务器通信。基本思想是,您可以从客户端对服务器进行远程过程调用,反之亦然。我对调用不带参数的服务器方法有一个适当的抽象,如下所示:Javascript 使用apply向服务器发送多个参数,javascript,angularjs,function,signalr,Javascript,Angularjs,Function,Signalr,我正在angular中开发一个javascript客户端,它使用信号器与后端服务器通信。基本思想是,您可以从客户端对服务器进行远程过程调用,反之亦然。我对调用不带参数的服务器方法有一个适当的抽象,如下所示: myInvoke: function (methodName, callback) { proxy.invoke(methodName) .done(function (result) { $ro
myInvoke: function (methodName, callback) {
proxy.invoke(methodName)
.done(function (result) {
$rootScope.$apply(function () {
if (callback) {
callback(result);
}
});
});
}
重要的部分是proxy.invoke(methodName)
,它将要调用的服务器方法的名称作为字符串
代理还允许传递多个要调用的参数。以下是一些例子:
我想完成的是类似于这样的事情,其中args是应该转发到集线器的任意数量的参数:
myInvoke: function (methodName, args, callback) {
proxy.invoke(methodName, args)...
我一直在读apply方法,但是我的javascript非常弱,我还没有找到一个有效的实现 忽略我之前的评论。我看错了你的信号员文件。基本上我假设你总是可以传递一个对象参数。看起来你确实可以通过这样做来完成你想要的 有关如何使用apply将参数从当前函数传递到invoke函数的信息,请参见此jsbin
args只是一个JS对象,因此传入一个对象并默认为空对象,您就应该开始工作了。您需要使用apply的唯一原因是,如果您想传递一些默认参数集。@GordonBockus如果我将10个参数传递到invoke中,我不明白这将如何工作。它如何知道如何处理所有这些代码呢?他们必须对代码进行一些小的更改才能使其正常工作。回调不需要是args的一部分,因为它不需要传递到signar服务器,它用于对RPC调用返回的值进行操作。此外,我还必须使用apply(proxy,args)而不是(null,args),但在这之后,它会执行我想要的操作!非常感谢:)
myInvoke: function (methodName, args, callback) {
proxy.invoke(methodName, args)...