用promine封装Ajax
时间: 2024-06-08 09:09:56 浏览: 120
Promises 是一种异步编程的解决方案,封装 Ajax 就可以使用 Promise 来实现异步操作的链式调用,使得代码更加简洁易读。
下面是一个使用 Promise 封装 Ajax 的例子:
```javascript
function ajax(url, method, data) {
return new Promise(function(resolve, reject) {
var xhr = new XMLHttpRequest();
xhr.open(method, url);
xhr.onreadystatechange = function() {
if (xhr.readyState === 4) {
if (xhr.status === 200) {
resolve(xhr.responseText);
} else {
reject(xhr.statusText);
}
}
};
xhr.onerror = function() {
reject("网络错误");
};
xhr.send(data);
});
}
```
使用该函数可以方便地进行 Ajax 请求:
```javascript
ajax("http://example.com/api", "POST", JSON.stringify({name: "John"}))
.then(function(response) {
console.log(response);
})
.catch(function(error) {
console.log(error);
});
```
这里的 `then` 方法可以接受一个回调函数,在 Ajax 请求成功后执行,`catch` 方法可以接受一个回调函数,在 Ajax 请求失败后执行。这样就可以方便地处理异步操作的结果了。
阅读全文