[英]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.