promise封装

本文介绍了一种使用JavaScript中的XMLHttpRequest对象发起网络请求的方法,包括GET和POST请求的实现,以及如何处理请求的成功和失败回调。通过示例代码展示了如何设置请求头,发送数据,并解析响应结果。
function request({
    url,
    method = "get",
    data,
    headers = {},
    }) {
    return new Promise((resolve,reject)=> {
        const xhr = new XMLHttpRequest();
        xhr.open(method, url);
        Object.keys(headers).forEach(key =>
        xhr.setRequestHeader(key, headers[key])
        );
        xhr.send(data);
        xhr.onreadystatechange  = () => {
            if(xhr.readyState === 4) {
				let result = xhr.responseText
				resolve({
                    result:result
                });
			}
            
        };
        xhr.onerror = (err) => {
            reject(err)
        }
    });
}
// 调用
request({url:`${host}/g/host_manager/api.php?act=list&id=${pid}`})
.then(res=> {
    console.log('成功回调',res)
}).catch(err=>{
    console.log('失败回调',err)
})

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值