我对javascript很新,我还在努力掌握回调概念。即便如此,我也不确定我是否有回调或ajax本身的问题。
所以我有这个回调函数,它基本上在我的代码中的其他地方接受一组对象。
function powerAmplifierInfo(id, cb) {
ApiGet('/system/radio-frequency/tx/' + id + '/power-amplifier', function (err, result) {
if (err && !TESTING) {
alertError("Connection error: " + err.statusText);
return;
} else if (result && result.result.code !== "OK") {
alertError(result.result.message);
return;
}
if (TESTING) {
result = { powerAmplifier: "TEST model", uptime: Date.now() };
}
cb(result.powerAmplifier);
});
}

此函数使用另一个函数,该函数使用ajax将get请求发送到某个服务器。
function ApiGet(urlSuffix, cb) {
var url = apiPrefix + "/" + urlSuffix;
$.ajax({
url: url,
type: 'GET',
success: function (result) {
cb(null, result);
},
error: function (err) {
cb(err, null);
}
});
}

现在,我的列表中的请求链可以工作,但是当我在循环中重新运行代码时,有时请求会混在一起,因为似乎ajax在发送请求时切换了一些端口命令。我在使用Wireshark对本地网络进行故障排除时发现了这个问题。这是一张图片来展示它:
Get请求已发送,但在第3和第4个之间,有一个端口混合。我们可以看到,服务器在没有端口顺序混淆的情况下回复。
我想知道,这是一个已知问题,还是我的代码,甚至我的服务器都有问题?在我的回调函数中发送单个对象而不是对象数组时,我没有收到此错误。
提前致谢!