抱歉,如果以前曾经问过,但我找不到另一个回答我的问题。我试图从一个从AJAX调用中获取数据的函数设置一个变量。但是,在我获得数据之前,该功能仍在继续运行。我怎么能避免这个?
如果您运行以下功能,您可以看到数据即将发布,但在运行RDID值的console.log之前。我需要设置RDID值。我也很欣赏一些资源来更好地学习这一点。
var RDID = getData('https://domain.com?dataRequest', rdProviderLookup);
function getData(url, callback, optional) {
var argLength = arguments.length;
var xhr = new XMLHttpRequest();
xhr.open('GET', url);
xhr.send(null);
xhr.onreadystatechange = function () {
var DONE = 4;
var OK = 200;
if (xhr.readyState === DONE) {
if (xhr.status === OK) {
if (argLength == 3) {
callback(xhr.responseText, optional);
} else {
callback(xhr.responseText);
}
} else {
console.log('Error ' + xhr.status);
callback('Error');
}
}
};
}
function rdProviderLookup(rdData) {
var rdData = JSON.parse(rdData);
var a = JSON.stringify(rdData.physicalStoreList[0].physicalStoreIdentifier.uniqueID);
console.log('a= ' + a);
return a;
}
console.log('RDID ' + RDID);