promise 封装ajax

function pajax({url=null, method='GET', dataType='JSON', async='true'}){ //这里有四个参数,对应常用的ajax配置,这里用ES6设置默认参数的方式进行设值
    return new Promise((resolve,reject)=>{
        let xhr = new XMLHttpRequest
        xhr.open(method, url, async)
        xhr.responseType = dataType
        xhr.onreadystatechange = () =>{
            //状态码做一个简单的正则验证
            if(xhr.readyState === 4 && (!/^[23]\d{2}$/.test(xhr.status))) {
                let result = xhr.responseText
                resolve(result)
            }
        }
        xhr.onerror = (err) => {
            reject(err)
        }
        xhr.send()
    })
}

pajax({
    url:'./test.json', 
    method: 'get'
}).then((result)=>{
    console.log(result)
},(err)=>{
console.log(err)
})

你可能感兴趣的:(promise 封装ajax)