您的位置:首页 > Web前端

手写promise版本ajax

2017-09-06 22:34 204 查看
// ajax函数将返回Promise对象:

function ajax(method, url, data) {

    var request = new XMLHttpRequest();

    return new Promise(function (resolve, reject) {

        request.onreadystatechange = function () {

            if (request.readyState === 4) {

                if (request.status === 200) {

                    resolve(request.responseText);

                } else {

                    reject(request.status);

                }

            }

        };

        request.open(method, url);

        request.send(data);

    });

}

var log = document.getElementById('test-promise-ajax-result');

var p = ajax('GET', '/api/categories');

p.then(function (text) { // 如果AJAX成功,获得响应内容

    log.innerText = text;

}).catch(function (status) { // 如果AJAX失败,获得响应代码

    log.innerText = 'ERROR: ' + status;
});

如果你想详细了解promise:  http://www.jianshu.com/p/05de7c1ef080

如果你想了解promise与ajax:  http://www.cnblogs.com/284628487a/p/5556144.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息