[摘要]本篇文章给大家带来的内容是关于promise如何封装ajax?promise封装ajax的实现方法,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。首先贴代码var ajaxOptio...
本篇文章给大家带来的内容是关于promise如何封装ajax?promise封装ajax的实现方法,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
首先贴代码
var ajaxOptions = {
    url: 'url',
    method: 'GET',
    async: true,
    data: null,
    dataType: 'text',
}
function ajax(protoOptions) {
    var options = {};
    for(var i in ajaxOptions){
        options[i] = protoOptions[i]    ajaxOptions[i];
    }
    
    return new Promise(function(resolve, reject){
        var xhr = new XMLHttpRequest();
        xhr.open(options.method, options.url, options.async);
        xhr.onreadystatechange = function() {
            if (this.readyState === 4 && this.status === 200) {
                resolve(this.responseText, this);
            } else {
                var resJson = {
                    code: this.status,
                    response: this.response
                }
                reject(resJson, this)
            }
        }
        xhr.send()
    })
}