Bir XMLHttpRequest (bu WebGL için) aracılığıyla harici kaynak yüklemek için kullandığım bir sınıfa sahibim. Bu yüzden, modelleri yüklüyorum, shader'lar yüklüyorum. Planım, tüm bu istekleri yerine getirirken bir yükleme ekranı koymaktı. Nihayet tamamlandı, onu oluşturan orijinal işlevden bir geriçağırım işlevi yürütmesini istiyorum. Ancak, bu aramayı tekrar çalıştırmaya çalıştığımda tuhaf sonuçlar alıyorum (örneğin, yüklemeyi yapan sınıf içindeki nesnelerin hiçbirine erişimi yoktur).Bir sınıf içinde bir söz içinde geri arama?
"Bu" yükleme sınıfa ve sonra
self = this;
promise(self.callback());
yaparak geçirerek bu sorunu gidermek alabilirsiniz ama ben daha ziyade bunun onun yükleme yapılması sonrasında etmek callback istediğiniz işlevi belirtmek etmişti . Bunun yapılabileceğini bilen var mı? Benim kod şöyle görünür:
Ana Class
this.loadingClass = new LoadingClass(this.LoadingComplete, resources);
Main.prototype.LoadingComplete = function()
{
// Returns undefined if i specify the callback function instead of just "this"
console.log(this.loadingClass.anyOfTheMembersOfThisClass);
}
Yükleme Sınıfı Sen geri arama detouching olan
LoadingClass = function(callback, resources) {
..
Promise.all(resources).then(function(loadedResources)
{
..
callback();
});
}