jquery - 如何将自定义参数传递给 jQuery AJAX 方法的回调方法?
问题描述
我已经看到了这个问题的各种答案,但我无法将它们映射到我的情况。我认为可能是其中一些问题的答案,似乎是旧的编码方式,或者对我来说不够熟悉,以至于我无法理解如何在我的情况下实施它们。
我让 PHP 生成了一个 records.json 文件,我的应用程序需要在该文件中查询几种方法的逻辑。
function queryRecords(recordId, requiredField) {
$.ajax("javascript/records.json", {
dataType: "json",
success: callBack,
error: function (jqXhr, textStatus, errorMessage) {
alert("AJAX error: unable to retrieve records from records.json\n\n" + errorMessage);
}
});
}
function callBack(response) {
$.each(response, function(index, records) {
if (records["MediaItemID"] == recordId) {
$.each(records, function(key, value) {
if (key == requiredField) {
return value;
}
});
}
});
}
queryRecords("14", "MediaItemName");
每次我需要查询记录时,我都需要传递recordId和requiredField来获取该记录字段的值(根据 callBack 方法中的循环)。但是,我似乎受限于这种方法,因为我无法将这些值作为参数成功传递。如果我在 success内输出到控制台,我会看到该值,但我需要在 success 之外访问该值,这就是我已经走了多远。我已经看到了很多关于这个的页面,我的头很痛。请问你能帮忙吗?
解决方案
我测试了https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function中建议的代码,只是为了看看我是否可以访问 Promise 之外的值,但它失败了一直在做...
var xyz = "please";
function resolveAfter2Seconds() {
return new Promise(resolve => {
setTimeout(() => {
resolve('resolved');
}, 2000);
});
}
async function asyncCall() {
console.log('calling');
const result = await resolveAfter2Seconds();
xyz = result;
//console.log(result);
// expected output: "resolved"
}
asyncCall();
console.log(xyz);
它返回“请”。
要么我不理解所提供的解决方案,要么我试图实现的目标没有被理解。我很高兴接受这是一个“我”的问题。
如果只是在 ajax 查询中将 async 设置为 false 的情况,那么答案会很简单,但这已被弃用。
答案是:我放弃了,但这只是因为多个方法依赖多个 ajax 调用来实现它们的逻辑可能是不明智的。
因此,我将把 json 文件中的记录导入到数组中,这样我就可以随时访问数据而不会感到头疼。
推荐阅读
- html - WebP 图像类型未在 ios 设备 chrome 浏览器上显示
- python - 将带有内置 MySQL 函数的查询转换为 flask-sqlalchemy
- java - 尝试与端点通信时无法识别 WSDL 类型
- python - Dart 相当于 Python zip 和列表推导,用于从两个列表生成小部件列表
- css - 四个相同的类通过伪选择器接收四种不同的样式
- c# - 处置已注册的 CancellationTokenRegistration 以终止以异步方法启动的进程
- django - 如何避免在 Django 中按回车键提交表单?
- react-native - 真实设备上的丢帧,而不是模拟器(IOS) - React Native Reanimated
- php - 警告:socket_connect():无法连接 [10061]:无法建立连接,因为目标机器主动拒绝它
- javascript - 如何从 React 的下拉组件中获取数据并更新状态?