49dwr - 传递额外的数据到 callback 函数

简介: 49dwr - 传递额外的数据到 callback 函数

通常我们需要传递额外的数据到 callback 函数,但是因为所有的回调函数都只有一个参数(远程方法的返回结果),这就需要一些小技巧了。

解决方案就是使用 Javascript 的闭包特性。

例如,你的回调函数原本需要像这个样子:

function callbackFunc(dataFromServer, dataFromBrowser) { 
  // 用dataFromServer和dataFromBrowser做些事情...... 
}

那么你可以像这个组织你的函数:

var dataFromBrowser = ...; 
// 定义一个闭包函数来存储dataFromBrowser的引用,并调用dataFromServer 
var callbackProxy = function(dataFromServer) { 
callbackFunc(dataFromServer, dataFromBrowser); 
}; 
var callMetaData = { callback:callbackProxy }; 
Remote.method(params, callMetaData);

换句话说,现在你作为 callback 函数传递过来的不是一个真正的 callback,他只是一个做为代理的闭包,用来传递客户端的数据。

你可以用更简介的形式:

var dataFromBrowser = ...; 
Remote.method(params, { 
callback:function(dataFromServer) { 
callbackFunc(dataFromServer, dataFromBrowser); 
} 
});
目录
相关文章
|
1月前
|
前端开发 Java Spring
【Spring】“请求“ 之传递单个参数、传递多个参数和传递对象
【Spring】“请求“ 之传递单个参数、传递多个参数和传递对象
108 2
|
1月前
|
JSON 前端开发 数据格式
@RequestMapping运用举例(有源码) 前后端如何传递参数?后端如何接收前端传过来的参数,传递单个参数,多个参数,对象,数组/集合(有源码)
文章详细讲解了在SpringMVC中如何使用`@RequestMapping`进行路由映射,并介绍了前后端参数传递的多种方式,包括传递单个参数、多个参数、对象、数组、集合以及JSON数据,并且涵盖了参数重命名和从URL中获取参数的方法。
69 0
@RequestMapping运用举例(有源码) 前后端如何传递参数?后端如何接收前端传过来的参数,传递单个参数,多个参数,对象,数组/集合(有源码)
|
2月前
|
JSON 前端开发 数据格式
Controller方法层POST请求方式代码形参接收不到问题
Controller方法层POST请求方式代码形参接收不到问题
35 0
|
3月前
|
JavaScript 前端开发
Vue中传递自定义参数到后端、后端获取数据(使用Map接收参数)
这篇文章讲述了如何在Vue中通过Axios二次封装传递自定义参数到后端,并展示了后端如何使用Map接收这些参数,以及如何避免参数转换错误和统一接口设计的方法。
数据交互,前后端数据请求,axios请求,对象结构的使用,E6的使用,结构赋值是什么?函数形参的obj如何,函数形参的obj就改成对象结构接收传入的数据对象
数据交互,前后端数据请求,axios请求,对象结构的使用,E6的使用,结构赋值是什么?函数形参的obj如何,函数形参的obj就改成对象结构接收传入的数据对象
|
5月前
|
前端开发 JavaScript
传递给组件
传递给组件
|
6月前
|
数据格式
【vue2事件传参1】自定义参数:在elementui的change事件中,自定义参数的传递方法
【vue2事件传参1】自定义参数:在elementui的change事件中,自定义参数的传递方法
611 1
【vue2事件传参1】自定义参数:在elementui的change事件中,自定义参数的传递方法
|
6月前
|
小程序
小程序封装组件简单案例,所有小程序适用(传入参数、外抛事件、传入样式)
小程序封装组件简单案例,所有小程序适用(传入参数、外抛事件、传入样式)
95 0
|
API C#
我不想再传递 nameof 了
有的时候抛出一个异常,我们需要知道是哪个方法抛出的异常。那么,我们可以通过传递 nameof 来获取调用者的方法名。但是,感觉很烦,每次都要传递 nameof。那么,有没有更好的方法呢?
95 0
我不想再传递 nameof 了
|
JavaScript 开发者
指令-使用钩子函数的第二个binding参数拿到传递的值|学习笔记
快速学习指令-使用钩子函数的第二个binding参数拿到传递的值
指令-使用钩子函数的第二个binding参数拿到传递的值|学习笔记