This question already has answers here:
How do I return the response from an asynchronous call?
(38个答案)
2年前关闭。
我是javascript新手。我想将Json数据存储在函数getjsonData中。我创建了一个私有函数retrieveJsonData,并将其传递给getJsonData。但我无法在onload函数之外访问json。
但是,它不是一个很好的功能,因为它没有达到锡盒上的要求。它声称要获取JSON数据,但也会存储它。
(38个答案)
2年前关闭。
我是javascript新手。我想将Json数据存储在函数getjsonData中。我创建了一个私有函数retrieveJsonData,并将其传递给getJsonData。但我无法在onload函数之外访问json。
var DataController = (function(){
var retrieveJsonData = function(){
var api,ourRequest;
api = 'http://52.69.49.40/assignment/getServiceData.php';
ourRequest = new XMLHttpRequest();
ourRequest.open('GET',api);
ourRequest.onload = function(){
obj = JSON.parse(ourRequest.responseText);
getJsonData(obj);
}
ourRequest.send();
}
var getJsonData = function(object){
return object;
}
return{
AjaxObject:function(){
getJsonData();
console.log(getJsonData());
}
}
})();
最佳答案
您的getJsonData
使用一个参数,并返回该参数的值。这就是所谓的“身份函数”,它什么都不做。您可能希望将数据存储在某个地方,可以通过将函数替换为:
var data = undefined;
function getJsonData() {
if (arguments.length > 0) {
data = arguments[0];
}
return data;
}
但是,它不是一个很好的功能,因为它没有达到锡盒上的要求。它声称要获取JSON数据,但也会存储它。
10-08 03:13