dojo 使用lang.hitch为xmlhttprequest

zf9nrax1  于 2022-12-16  发布在  Dojo
关注(0)|答案(1)|浏览(233)

我不知道在XMLHttpRequest中使用lang.hitch的方法,有什么想法吗?

var xml = new XMLHttpRequest();
xml.onreadystatechange(lang.hitch(this,function()
            {
                if (xml.readyState==4 && xml.status==200)
                {
                var t=xml.response;
                this.method();
                }
            }
            ));  
xml.open('GET',someURL, false);
xml.send();
3phpmpom

3phpmpom1#

dojo中有类的概念,我们可以在类中定义方法,这样代码架构就清晰了,对于事件响应部分,操作范围会局限在响应函数中,失去类的场景。
这几天我找到了一个解决不依赖 dojo 的办法,办法是:在主场景中,通过以下方式将其设置为变量:var示例=this;在asynch方法(response)中,如果通过以下方式调用主场景中的方法:示例。一些方法();

sendXMLRequest: function () {
     var xml = new XMLHttpRequest();
     xml.responseType = "json";
     xml.open('GET', url, true);
     var instance = this;
     xml.onload = function (e) {
          if (this.status == 200 || this.status == 304) {
           instance.SomeMethod();
                  } 
            } 
     xml.send();
   },
SomeMethod:function(){
   //do something.
}

相关问题