promise封装ajax
时间: 2023-10-14 22:22:29 浏览: 25
下面是一个使用 Promise 封装 Ajax 的例子:
```javascript
function ajax(url, method, data) {
return new Promise((resolve, reject) => {
const xhr = new XMLHttpRequest();
xhr.open(method, url);
xhr.onreadystatechange = () => {
if (xhr.readyState === 4) {
if (xhr.status >= 200 && xhr.status < 300) {
resolve(xhr.responseText);
} else {
reject(xhr.statusText);
}
}
};
xhr.onerror = () => reject(xhr.statusText);
xhr.send(data);
});
}
// 使用示例
ajax('/api/data', 'GET')
.then((response) => {
console.log(response);
})
.catch((error) => {
console.error(error);
});
```
上述代码中,我们将 Ajax 请求封装在一个 `ajax` 函数中,并返回一个 Promise 对象。在 `ajax` 函数内部,我们创建了一个 XMLHttpRequest 对象,设置了请求的 URL、请求方法、请求数据,并且监听了 `readyState` 和 `status` 的变化,如果请求成功,调用 `resolve` 方法并传入响应结果;如果请求失败,调用 `reject` 方法并传入错误信息。在使用时,我们可以通过 `then` 方法来获取响应结果,通过 `catch` 方法来处理错误信息。