我创建了Object,就像这样:
var JSONRespond = new Respond('JS/lib/XML/options.json');
我想将JSON对象转换为另一个对象,例如:
var Options = JSONRespond.getOptions();
console.log("TEST" + Options.options[0].params) // doesn't working
回复课程:
var Respond = function(URL){
this.requestURL = URL;
}
Respond.prototype.getOptions = function(){
var JSON;
var headers = new Headers();
headers.set('Content-Type', 'application/json');
headers.set('Method','GET');
var request = new Request(this.requestURL, headers);
fetch(request).then(function (response){
return response.json();
}).then(function(respondJSON){
JSON = respondJSON;
console.log("Test respondJSON:" + respondJSON.options[1].params); //OK
console.log("Test JSON:" + JSON.options[0].params); // ok too
return JSON; //
})
}
我如何获得JSON对象并返回main函数?(不要使用promises,回调)。
答案 0 :(得分:1)
由于getOptions本身不返回任何内容,因此您从最后一个返回的JSON然后返回'只是消失了。你可能想要回复承诺并链接另一个'然后'在它之后。类似于:
Respond.prototype.getOptions = function(){
...
return fetch(request)
.then(function (response) {
return response.json();
});
};
var JSONRespond = new Respond('JS/lib/XML/options.json');
var Options = JSONRespond.getOptions();
Options.then(function( JSON ) {
console.log(JSON);
});
注意:你的意思是什么'(不要使用承诺,回调)' ? 您可以调用getOptions提供回调,然后在最后一次调用该回调'然后'。