簡體   English   中英

從函數返回getJSON響應

[英]Returning getJSON response from a function

我有一個javascript文件,希望在其中反復調用相同的getJSON調用。 例如:

$(document).ready(function() {
  $('#validate').click(function() {
    var url;
    url = 'http://myurl';
    $.getJSON(url, function(data) {
      if (data[0].response.status === 'ok') {
        $('#validate_text').html("data validated");
      } else {
        $('#validate_text').html("data Not Valid");
      }
    });
  });
});

這項工作,我想將其重構為:

$(document).ready(function() {
  $('#validate').click(function() {
    var url;
    url = 'http://myurl';
    data = myjsonfunction(url);
      if (data[0].response.status === 'ok') {
        $('#validate_text').html("DLS / NTS Validated");
      } else {
        $('#validate_text').html("DLS / NTS Not Valid");
      }
  });
});

其中myjsonfunction(url)是一個獨立的函數,我可以傳遞URL並返回原始的getJSON數據。 我已經看到了一些示例,在這些示例中,您已經在getJSON塊等之外設置了一個已定義的變量。但是我似乎無法使其中任何一個起作用。

嘗試使用.then() ,因為data是異步的,如果可以在myjsonfunction(url)響應之前被同步調用

$(document).ready(function() {
  $('#validate').click(function() {
    var url;
    url = 'http://myurl';
    data = myjsonfunction(url);
    data.then(function(response) {
      if (response[0].response.status === 'ok') {
        $('#validate_text').html("DLS / NTS Validated");
      } else {
        $('#validate_text').html("DLS / NTS Not Valid");
      }
    }, function err(jqxhr, textStatus, errorThrown) {
         console.log(erroThrown)
    })
  });
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM