我有一个foo发出Ajax请求的函数.我怎样才能从中回复foo?
我尝试从success回调中返回值,并将响应分配给函数内部的局部变量并返回该变量,但这些方法都没有实际返回响应.
function foo() {
var result;
$.ajax({
url: '...',
success: function(response) {
result = response;
// return response; // <- I tried that one as well
}
});
return result;
}
var result = foo(); // It always ends up being `undefined`.
Run Code Online (Sandbox Code Playgroud) 我正在研究一个必须从不同城市的 API 获取 json 数据并构建 DOM 的部分。
到目前为止,我已经能够做到这两点。唯一的问题是不同城市的 API 响应时间不同。因此,当我构建 DOM 时,它们的顺序与我调用函数的顺序不同。据我回忆,我需要使用 promise 来获得该订单。我现在的问题是:
到目前为止我的工作代码:
var base_path = "https://www.example.com/";
var cities = [
"San_Francisco",
"Miami",
"New_Orleans",
"Chicago",
"New_York_City"
];
function getData(city){
var path = base_path+city+".json";
$.getJSON(path,function(data) {
// build DOM
});
}
for(var i=0;i<cities.length;i++) {
getData(cities[i]);
}
Run Code Online (Sandbox Code Playgroud)
谢谢!