【问题标题】:get information from a JSON and access to a var later从 JSON 获取信息并稍后访问 var
【发布时间】:2021-02-12 18:31:27
【问题描述】:

我尝试从在线 JSON 中获取信息:

function agafar(){
$.getJSON('https://api.example.com/example.json', function(data) {
    var first = data.first;
    //$('#check').text(first); It works here
});
}

当我点击一个按钮时,如何先访问 var?

$("#boto").click(function() {
    agafar();
    //$('#check').text(first); It does not work here
 });

(我尝试将全局 var 首先放在函数外部,然后将(不带 var)放在函数内部,这没有区别)

【问题讨论】:

  • 将其分配给一个隐藏输入,然后获取隐藏输入的值。

标签: jquery json


【解决方案1】:

那行不通,因为获取是异步的。因此,您尝试在读取第一个变量之前对其进行访问。完美的解决方案是从 fetch 函数返回一个 Promise,但为了便于理解,我将展示如何使用简单的回调。

var first;

function agafar(Callback)
{
    $.getJSON('https://api.example.com/example.json', function(data) {
    first = data.first;
    Callback();
});

$("#boto").click(function() {   
    agafar(function()
    {  
        $('#check').text(first); It does work here
    }
});

在这种情况下,您当然可以先返回结果,而不需要变量的全局定义。

function agafar(Callback)
{
    $.getJSON('https://api.example.com/example.json', function(data) {
    var first = data.first;
    Callback(first);
});

$("#boto").click(function() {   
    agafar(function(first)
    {  
        $('#check').text(first); It does work here
    }
});

【讨论】:

    猜你喜欢
    • 2021-05-16
    • 2018-11-13
    • 2021-01-13
    • 1970-01-01
    • 2021-03-27
    • 1970-01-01
    • 1970-01-01
    • 2015-06-02
    • 2013-11-27
    相关资源
    最近更新 更多