繁体   English   中英

如何将数据从fetch(“ URL”)。then()存储到Java脚本中的变量

[英]How to store data from fetch(“URL”).then() to a variable in java script

我正在尝试使用.ready()将数据从url加载到变量中,但警报框提供了未定义的值,请提供帮助。

    let getMasterProd = () => {
        return fetch('url').then(data => data.json());
    }



    $( document ).ready(function() {
        var data =getMasterProd();
        alert(data);
    });

“未定义”的原因可能是由于fetch调用的异步性质。 如果您真的想提供警报,请尝试在then()内部使用它:

fetch('url').then(function(data){alert(data)});

您也可以使用异步ajax调用来获取数据,但是不建议这样做。 如果您可以提供实际情况,那么对我来说将更加方便。 或者您可以尝试以前建议的方法:

 let test;
console.log(fetch('url').then(function (data) {
  test = data;
}));
setTimeout(function () {
  alert(test);
}, 500);

有关详细信息,请参见: 如何返回异步调用的响应?

我认为这也应该起作用:

  function $_GET(q, s) {
    s = (s) ? s : window.location.search;
    var re = new RegExp('&' + q + '=([^&]*)', 'i');
    return (s = s.replace(/^\?/, '&').match(re)) ? s = s[1] : s = '';
  }

只是这样称呼它:

var value = $_GET('myvariable');

fetch返回Promise而不是数据。

const getMasterProd = () => fetch('url').then(data => data.json());

$(document).ready(() => {
    getMasterProd()
    .then((data) => {
      alert(data);
    });
});

试试看

fetch('url').then(data => { return data.json() });

另外,您应该考虑使用axios。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM