Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我不知道';我不理解Ajax、Promise和XMLHttpRequest_Javascript - Fatal编程技术网

Javascript 我不知道';我不理解Ajax、Promise和XMLHttpRequest

Javascript 我不知道';我不理解Ajax、Promise和XMLHttpRequest,javascript,Javascript,这是我的代码: const getXHR = (type, url) => { let xhr = new XMLHttpRequest(); let p = new Promise(function(resolve, reject) { xhr.onload = function() { if(xhr.status >= 200 && xhr.status < 400) { resolve(xhr.

这是我的代码:

const getXHR = (type, url) => {

  let xhr = new XMLHttpRequest();

  let p = new Promise(function(resolve, reject) {

    xhr.onload = function() {
        if(xhr.status >= 200 && xhr.status < 400) {
            resolve(xhr.responseText);
        } else {
            reject(new Error(`Error. Code ${xhr.status}`))
        }
    };

    xhr.onerror = function() {
        reject(new Error(`Error. Problem with connection`));
    }

});

xhr.open(type, url);

return {xhr, p};

};

export default {

get(url) {

  var _getXHR = getXHR('GET', url),
      xhr = _getXHR.xhr,
      p = _getXHR.p;

    xhr.send();

    return p;

  }
}
与此相反:

var xhr = getXHR('GET', url).xhr,
    p = getXHR('GET', url).p;
这有什么问题?对我来说,这是完全相同的代码行。我将非常感激任何形式的帮助。也许有人有我可以找到答案的链接

多谢各位

var xhr = getXHR('GET', url).xhr,
p = getXHR('GET', url).p;
创建两个请求,然后获取第一个请求的xhr对象和第二个请求的承诺。发送第一个的xhr请求,其中一个承诺始终处于挂起状态。所以这可能不起作用。可能会使用一些分解:

var { p, xhr } = getXHR('GET', url);
xhr.send();
return p;

对不起,我还是不明白
var { p, xhr } = getXHR('GET', url);
xhr.send();
return p;