我想从文件中检索数据,并在完成后处理它。我的类DataService.js正在完成它的工作,但是从外部来看,我无法获取加载的数据。以下是我的代码。
main.js
.
.
.
$('#loadMyData').on('click',function(event) {
var m = dataService.loadLanguage().done(dataService.handleData);
$.when(m).done(function() {
console.log(dataService.loadedLanguage); // undefined
});
});
.
.
.
DataService.js
class DataService {
loadedLanguage;
constructor() {
this.loadedLanguage;
}
loadLanguage() {
return $.ajax({
url: "php/services/readLanguage.php",
type: "GET",
async: true,
data: {data: "test"},
dataTyp: 'json'
});
};
handleData(data) {
this.loadedLanguage = JSON.parse(data);
console.log(this.loadedLanguage); // ok
}
}
为什么'loadedLanguage'仍未定义,即使它已成功加载。
$ .when的语法就像
$.when( { testing: 123 } ).done(function( x ) {
alert( x.testing ); // Alerts "123"
});
你应该写这样的。
$('#loadMyData').on('click',function(event) {
var m = dataService.loadLanguage().done(dataService.handleData);
$.when(m).done(function(responce) {
console.log(responce); // You should catch response like this
});
});