向 JSON RPC 回调函数添加参数
Adding arguments to JSON RPC callback function
注意:为清楚起见,问题已编辑 4/5/2014
我正在使用从服务器请求数据的 JSON RPC 进行方法调用。当数据返回时,它会触发一个回调函数。JSON RPC 回调函数会自动从服务器提供输出和异常参数。目前,我有一个函数,既发出 RPC 请求,又处理和显示数据。我想将我的请求问题与我的显示问题分开,以便代码更可重用。为此,我还需要将 resultRegion id 参数传递给回调函数。
下面是当前功能但连体代码的示例:
function customerTable(inputField, resultRegion) {
var displayAccountTable = function(accounts, exception) {
if(exception) {
alert(exception.msg);
}
else {
var headings = ["Account ID", "First Name", "Last Name", "Balance"];
var rows = new Array();
for(var i=0; i<accounts.length; i++) {
var account = accounts[i];
rows[i] = [account.accountID, account.firstName, account.lastName, account.prettyAccountBalance];
}
var table = getTable(headings, rows);
htmlInsert(resultRegion, table);
}
};
var inputs = commaStringToArray(getRawValue(inputField));
rpcClient.rpcTester.getAccounts(displayAccountTable, inputs);
}
编辑:这是我在使用David SkyMesh的答案后登陆的工作代码。
function customerTable(inputField, resultRegion) {
var inputs = commaStringToArray(getRawValue(inputField));
rpcClient.rpcTester.getAccounts(displayAccountTable(resultRegion), inputs);
}
function displayAccountTable(resultRegion) {
return function (accounts, exception) {
if(exception) { return alert(exception.msg); }
var headings = ["Account ID", "First Name", "Last Name", "Balance"];
var account, rows = [];
for(var i=0; i<accounts.length; i++) {
account = accounts[i];
rows[i] = [account.accountID, account.firstName, account.lastName, account.prettyAccountBalance];
}
var table = getTable(headings, rows);
htmlInsert(resultRegion, table);
};
}
让我们从明显的基于闭包的方法开始:
function mk_displayAccountTable(inputField, resultRegion) {
return function (accounts, exception) {
if (exeption) return alert(exception.msg);
var headings = ["Account ID", "First Name", "Last Name", "Balance"];
var i, account, rows = [];
for(i=0; i<accounts.length; i++) {
account = accounts[i];
rows.push([account.accountID, account.firstName,
account.lastName, account.prettyAccountBalance]);
}
var table = getTable(headings, rows);
htmlInsert(resultRegion, table);
};
}
function customerTable(inputField, resultRegion) {
var inputs = commaStringToArray(getRawValue(inputField));
rpcClient.rpcTester.getAccounts(
mk_displayAccountTable(inputField, resultRegion),
inputs);
}
相关文章:
- 如何向这个javascript/jquery函数添加参数
- 如何在所有ajax调用中向URL添加参数
- 在Javascript中向回调添加参数
- javascript窗口打开并添加参数
- 无法在 JavaScript 函数中添加参数
- 向jQueryajax调用添加参数,最好添加到URL或对象中
- 使用JavaScript向链接添加参数
- 正在向传递的回调添加参数
- 循环遍历数组,并在javascript中向sql查询添加参数
- 向回调添加参数
- 通过随机 url 重定向传递和添加参数
- 如何使用变量向对象添加参数
- 为什么添加参数时停止功能
- 向网址添加参数 - 因现有参数而异
- 当函数绑定在构造函数中时,如何在 ES6 React 中向事件处理程序添加参数
- 使用 JavaScript 或 jQuery 如何在页面加载后向 URL 添加参数
- 添加参数时调用javascript函数停止工作,这真的不大声吗
- 余烬数据不会向后置请求添加参数
- 如何在函数调用中自动添加参数
- 为什么可以在 JavaScript 中添加参数类型和返回类型