我正在写下一个网站,我需要从客户端访问存储在服务器端的JSON。 获取数据后,我需要将Json分配给一个变量,以便以后可以将其传递给另一个变量。
我已经使用JQuery和其他方法检查了许多方法,但是它们都对服务器执行异步调用,所以我不知道如何将请求与变量分配同步。
我暂时决定使用同步调用来满足我的需求,但原本应该的浏览器开始抱怨了。
这就是我目前拥有的一段代码:
// TODO: [Deprecation] Synchronous XMLHttpRequest on the main thread is deprecated
// because of its detrimental effects to the end user's experience. For more help,
// check https://xhr.spec.whatwg.org/.
function httpGet(theUrl)
{
var xmlHttp = new XMLHttpRequest();
xmlHttp.open( "GET", theUrl, false ); // false for synchronous request
xmlHttp.send( null );
return xmlHttp.responseText;
}
var jsonData = httpGet('minutes');
simplyCountdown = function (elt, args) {
var parameters = extend({
year: 2019,
month: 10,
day: 7,
hours: 0,
minutes: 0,
seconds: 0,
words: JSON.parse(jsonData),
.
.
.
我以前尝试过:
var jsonvar;
$.getJSON('minutes', function(data) {
console.log("minutes data: "+JSON.stringify(data));
jsonvar = data;
});
或:
async function getJson() {
const response = await fetch('minutes', {});
const json = await response.json();
console.log(json);
return json;
}
但是当然没有按预期进行。 没有同步通话,有什么方法可以解决这个问题?
P.S我仍然需要研究好Async / await和Promises