Javascript OOP构造函数使用ajax初始化数据-原型中不可用
我在实现javascript类时遇到了一个问题,该类的构造函数由ajax调用填充。从文件中读取数据,并以异步方式正确填充类属性。以下代码可以正常工作:Javascript OOP构造函数使用ajax初始化数据-原型中不可用,javascript,jquery,ajax,oop,Javascript,Jquery,Ajax,Oop,我在实现javascript类时遇到了一个问题,该类的构造函数由ajax调用填充。从文件中读取数据,并以异步方式正确填充类属性。以下代码可以正常工作: function Pattern(file){ this.pattern = new Array(); $.ajax({ type: 'GET', url: file, dataType: 'text', context: this, succes
function Pattern(file){
this.pattern = new Array();
$.ajax({
type: 'GET',
url: file,
dataType: 'text',
context: this,
success: function (data){
...
this.buildPattern(data);
},
error: function (jqXHR, textStatus, errorThrown){
alert('Problem loading file \'' + file + '\'');
}
});
}
Pattern.prototype.buildPattern = function(pattern){
do{
...
this.pattern[i][j] = pattern[i][j];
...
}while(pattern[k] != '!');
}
当我在实例化类后访问另一个方法时,会出现问题:
Pattern.prototype.getPattern = function(number){
...
return this.pattern;
}
使用此代码:
var pattern1 = new Pattern('filename.ext');
var myPattern1 = pattern1.getPattern(1);
由于初始化类中属性的异步方式,在创建类之后调用方法getPattern()会返回一个空结果,因为this.pattern尚未完成加载和后处理
我知道存在延迟和承诺的jQuery对象,但我还没有找到任何使用javascript和类的实现
有人能给我指出正确的方向吗?很抱歉,我写这篇文章是作为回答,而不是评论。我的平板电脑目前不允许我写评论 我只是认为您可能会触发一个事件(可能使用PubSub),并将使用该类的代码放入EventHandler函数中,该函数在类完全加载后触发