首页 > 试题广场 >

将原生的ajax封装成promise

[问答题]

将原生的ajax封装成promise

      function ajax(url) {
        return new Promise(function (resolvereject) {
          let xhttp = new XMLHttpRequest();

          xhttp.onreadystatechange = function () {
            if (xhttp.readyState === 4) {
              if (xhttp.status === 200resolve(xhttp.responseText);
              else reject(xhttp.responseText);
            }
          };

          xhttp.open("GET"url);
          xhttp.send();
        });
      }
发表于 2021-01-07 18:09:46 回复(0)

参考答案错误,onreadystatechange 会触发多次,第一次就会导致 promise 被拒绝

发表于 2020-03-08 20:13:45 回复(0)