写一段promise 请求
时间: 2023-07-25 20:23:48 浏览: 43
好的,以下是一个基于Promise的请求示例:
```javascript
function makeRequest(method, url, data) {
return new Promise(function(resolve, reject) {
var xhr = new XMLHttpRequest();
xhr.open(method, url);
xhr.onload = function() {
if (this.status >= 200 && this.status < 300) {
resolve(xhr.response);
} else {
reject({
status: this.status,
statusText: xhr.statusText
});
}
};
xhr.onerror = function() {
reject({
status: this.status,
statusText: xhr.statusText
});
};
xhr.send(data);
});
}
// 使用示例
makeRequest('GET', '/api/users')
.then(function(response) {
console.log('成功:', response);
})
.catch(function(error) {
console.log('失败:', error);
});
```
该示例中,我们创建了一个名为 `makeRequest` 的函数,它接受三个参数:请求方法、请求URL和请求数据。该函数返回一个Promise对象,该对象在请求成功时将返回响应数据,否则将返回错误信息。
在函数内部,我们使用XMLHttpRequest对象创建了一个HTTP请求,并将其打开。我们在`xhr.onload`和`xhr.onerror`事件中分别处理请求成功和失败的情况。如果请求成功,我们将响应数据传递给`resolve`函数,否则将错误信息传递给`reject`函数。
在使用示例中,我们调用`makeRequest`函数并传递请求方法和URL。我们使用`.then`来处理成功的响应,并使用`.catch`来处理失败的响应。