相关疑难解决方法(0)

如何从异步调用返回响应?

我有一个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)

javascript ajax jquery asynchronous xmlhttprequest

5208
推荐指数
38
解决办法
134万
查看次数

一系列的承诺

我正在研究一个必须从不同城市的 API 获取 json 数据并构建 DOM 的部分。

到目前为止,我已经能够做到这两点。唯一的问题是不同城市的 API 响应时间不同。因此,当我构建 DOM 时,它们的顺序与我调用函数的顺序不同。据我回忆,我需要使用 promise 来获得该订单。我现在的问题是:

  1. 我如何使用一系列承诺(因为我的输入会有所不同)。
  2. 另外我如何执行一系列承诺?

到目前为止我的工作代码:

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)

谢谢!

javascript jquery closures asynchronous promise

1
推荐指数
1
解决办法
649
查看次数