Как извлечь общие обещания xhr? - PullRequest
0 голосов
/ 08 июля 2019

Итак, у меня есть пара методов, которые должны вернуть обещание.Эти методы похожи на обещанный XHR, поэтому я пытался извлечь часть общего обещания XHR, но не могу.

Я попробовал пару вещей.Например:

function sendXHR(reqMethod, reqUrl, successFn, errorFn) {
 return new Promise((resolve, reject) => {
        let xmlhttp = new XMLHttpRequest();
        xmlhttp.onreadystatechange = () => {
            if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                try {
                    resolve(successFn(xmlhttp));
                }
                catch(ex){
                    reject(errorFn(ex));
                }
            }
        }

        xmlhttp.open(reqMthod, reqUrl, true);
        xmlhttp.send();
    });
function returnXHRPromise(url) { 
 return new Promise((resolve, reject) => {
   sendXHR('GET', url, function (xmlhttp) { ... some code ...
    resolve(...) }, function (ex) { ... some code ... 
    reject(...) }
 })
}

Пробовал также

function returnXHRPromise(url) { 
   sendXHR('GET', url, function (xmlhttp) { ... some code ...
    resolve(...) }, function (ex) { ... some code ... 
    reject(...) }
}

Раньше это было что-то вроде -

function returnXHRPromise(url) { 
 return new Promise((resolve, reject) => {
   let xmlhttp = new XMLHttpRequest();
        xmlhttp.onreadystatechange = () => {
            if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                try {
                   ... some code ... ; resolve(...)

                }
                catch(ex){
                    ...some code ... ; reject(...);
                }
            }
        }

        xmlhttp.open('GET', url, true);
        xmlhttp.send(); 
   }
 })
}

Нужно отделить обещанную часть XHRи основная работа функции.

...