我正在尝试用 Javascript 创建多个 XMLHttpRequest - 使用两个不同的 URL。目的是将每个响应保存到一个变量中并使用所有响应。
其实我就是这样做的,有没有优雅的方法呢?
var ourRequest = new XMLHttpRequest();
ourRequest.open('GET', 'http://website-one.com/FIRST.json');
ourRequest.onload = function() {
var Data_One = JSON.parse(ourRequest.responseText);
call_second(Data_One);
};
ourRequest.send();
function call_second(Data_From_One) {
var ourRequest_TWO = new XMLHttpRequest();
ourRequest_TWO.open('GET', 'http://website-two.com/second.json');
ourRequest_TWO.onload = function() {
var Data_TWO = JSON.parse(ourRequest_TWO.responseText);
work_with_them(Data_From_One, Data_Two);
};
ourRequest_TWO.send();
function work_with_them(data_one, data_two) {
//do my work
}
最佳答案
不,使用 XMLHtpRequest
时没有更简单的方法,您可以使用其他库(Ajax)或使用一些较新的 javascript API,例如 Promises和 async/await拥有更清晰的代码和更具可读性的代码。
重构后的代码将是:
const chainedFunction = async () => {
const firstResult = await ourRequest();
const second = await call_second(firstResult);
// do some magic
};
关于javascript - 如何使多个 XMLHttpRequest for JSON 形成不同的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53876249/