javascript - 如何以非 Ajax 方式使用 jQuery(或 Javascript)从 API 调用中获取 JSON 结果?

标签 javascript jquery ajax json

我是 JS 和 jQuery 的新手。我正在尝试从返回键值对数组的 API 调用构建一个键值映射。

[{"key":"191","value":244}, ... , {"key":"920","value":130}]

我想出了这个ajax代码。但以下代码将需要从 loadMap 构造的 map 。如何将其更改为“followingFunction”在 loadMap 完成后运行的非 ajax 方式>

var mp = {};
(function loadMap() {
    $.ajax({
        type: 'GET',
        url:'http://localhost:8080/xxx/api?start_date=2014-10-01&end_date=2014-11-01',
        dataType: "json",
        success: function(arr){
            var out = "";
            for(i = 0; i<arr.length; i++) {
                mp[arr[i].key] = arr[i].value;
            }
        }
    }); 
}());

//followingFunction which needs the information from mp

最佳答案

您可以通过两种不同的方式解决这个问题。

1) 在 success 回调结束时执行followingFunction:

var mp = {};
function loadMap() {
    $.ajax({
        type: 'GET',
        url:'http://localhost:8080/xxx/api?start_date=2014-10-01&end_date=2014-11-01',
        dataType: "json",
        success: function(arr){
            var out = "";
            for(i = 0; i<arr.length; i++) {
                mp[arr[i].key] = arr[i].value;
            }
            followingFunction();
        }
    });
};
loadMap();

2) 将async 标志设置为false(默认情况下该标志为true)。这将导致同步执行时阻塞调用:

var mp = {};
function loadMap() {
    $.ajax({
        type: 'GET',
        url:'http://localhost:8080/xxx/api?start_date=2014-10-01&end_date=2014-11-01',
        dataType: "json",
        async: false,
        success: function(arr){
            var out = "";
            for(i = 0; i<arr.length; i++) {
                mp[arr[i].key] = arr[i].value;
            }
        }
    });
};
loadMap();
followingFunction(); 

关于javascript - 如何以非 Ajax 方式使用 jQuery(或 Javascript)从 API 调用中获取 JSON 结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28923279/

相关文章:

javascript - "SyntaxError: Unexpected token <"与 Ionic Angular JS

javascript - this.httpClientModule.get 不是函数

javascript - 如何将用户提供的值中的日期值从 ("YYYY/MM/DD HH:mm:ss") 更改为 ("mm")

javascript - Java 使用 XMLHttpRequest 的编码问题

javascript - 如何强制 Chrome 请求 JavaScript 两次

javascript - 为什么我在 React.js + GraphQL : Module build failed: SyntaxError: Unexpected token (10:6) 中收到此错误

javascript - 如何防止那些 PHP 变量被缓存在 WordPress 上?

javascript - Ajax + JSF 第一次点击后点击2次

Jquery添加和删除一个div的多个类

javascript - 通过它在 Jquery 中的值获取选项 HTML