XHR with Promises

by stopsatgreen

JavaScript

function get(url) {
    return new Promise(function(resolve, reject) {
        var req = new XMLHttpRequest();
        req.open('GET', url);
        req.onload = function() {
            if (req.status == 200) {
                resolve(req.response);
            } else {
                reject(Error(req.statusText));
            }
        };
        req.onerror = function() {
            reject(Error("Network Error"));
        };
        req.send();
    });
}

// Then…

get(reqURL).then(function (response) {
    console.log(response);
}, function(error) {
    console.error('Failed!', error);
});