我正在尝试使用.ready()将数据从url加载到变量中,但是警报框提供了未定义的值,请帮忙。
let getMasterProd = () => {
return fetch('url').then(data => data.json());
}
$( document ).ready(function() {
var data =getMasterProd();
alert(data);
});
答案 0 :(得分:2)
“未定义”的原因可能是由于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);
有关详细信息,请参见:How do I return the response from an asynchronous call?
答案 1 :(得分:1)
我认为这也应该起作用:
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');
答案 2 :(得分:1)
fetch
返回Promise
而不是数据。
const getMasterProd = () => fetch('url').then(data => data.json());
$(document).ready(() => {
getMasterProd()
.then((data) => {
alert(data);
});
});
答案 3 :(得分:0)
尝试一下
fetch('url').then(data => { return data.json() });
此外,您应该考虑使用axios。