jquery ajax 回调 Class 变量未定义

jquery ajax callback Class variable is undefined

我想从文件中检索数据,并在完成后处理它。我的 Class 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
    });

});