使用lang.hitch for xmlhttprequest

时间:2017-11-16 03:31:48

标签: ajax dojo xmlhttprequest

我没有抓住在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();

1 个答案:

答案 0 :(得分:0)

在道场中有阶级概念。我们可以在类中定义方法。然后代码架构将是清晰的。对于事件响应部分,操作范围将限制在响应函数中并丢失类场景。

这些天我找到了一个不依赖于dojo lang.hitch的解决方案,方法是: 在主场景中,通过以下方式将其设置为变量:         var instance = this; 在asynch方法(响应)中,如果通过以下方式调用主场景中的方法:    instance.SomeMethod();

   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.
}