在这种情况下如何使用Promise JS?

时间:2018-03-26 17:29:59

标签: javascript node.js promise

我有:

function loadDoc123() {
    var xhttp = new XMLHttpRequest();
    xhttp.onreadystatechange = function() {
      if (this.readyState == 4 && this.status == 200) {
        document.getElementById("demo").innerHTML = this.responseText;
      }
    };
    xhttp.open("GET","demo_get2.asp?fname=Henry&lname=Ford", true);
    xhttp.send();
  }

我想对此代码实现promiseJS,但不要编辑代码。我该怎么办?

1 个答案:

答案 0 :(得分:2)

没有编辑,你就无法做到。您需要将代码包装到Promise

function loadDoc123() {
    return new Promise((res, rej) => {            
        var xhttp = new XMLHttpRequest();
        xhttp.onreadystatechange = function() {
            if (this.readyState == 4 && this.status == 200) {
                res(this.responseText);
            }
        };

        xhttp.open("GET","demo_get2.asp?fname=Henry&lname=Ford", true);
        xhttp.send(); 
    });
}

并使用

loadDoc123().then(text => document.getElementById("demo").innerHTML = text);