要解决这个问题,可以使用回调函数或者Promise来处理AJAX请求。以下是两种解决方法的示例代码:
使用回调函数:
function fetchArray(callback) {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState === 4 && xhr.status === 200) {
var response = JSON.parse(xhr.responseText);
callback(response[response.length - 1]);
}
};
xhr.open('GET', 'your-api-url', true);
xhr.send();
}
fetchArray(function(data) {
console.log(data);
});
使用Promise:
function fetchArray() {
return new Promise(function(resolve, reject) {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState === 4) {
if (xhr.status === 200) {
var response = JSON.parse(xhr.responseText);
resolve(response[response.length - 1]);
} else {
reject(xhr.statusText);
}
}
};
xhr.open('GET', 'your-api-url', true);
xhr.send();
});
}
fetchArray().then(function(data) {
console.log(data);
}).catch(function(error) {
console.log(error);
});
无论你选择使用回调函数还是Promise,都可以通过解析AJAX响应的文本并获取最后一个数组项来解决问题。
上一篇:Ajax进度条加载过快