封装 wx.request 返回 Promise,可仿照 axios 风格来封装
时间: 2023-09-26 08:14:30 浏览: 122
你可以按照以下方式封装 wx.request 返回 Promise,并参照 axios 的风格:
```javascript
function request(config) {
return new Promise((resolve, reject) => {
wx.request({
url: config.url,
method: config.method || 'GET',
data: config.data || {},
header: config.headers || {},
success: res => {
resolve(res.data);
},
fail: err => {
reject(err);
}
});
});
}
// 使用示例
request({
url: 'https://example.com/api',
method: 'POST',
data: {
name: 'John',
age: 25
},
headers: {
'Content-Type': 'application/json'
}
})
.then(response => {
console.log(response);
})
.catch(error => {
console.error(error);
});
```
上述代码中,我们定义了一个名为 `request` 的函数,它接受一个配置对象 `config`,其中包含了请求的 URL、方法、数据和头部信息。在函数内部,我们返回一个新的 Promise 并调用 `wx.request`,根据请求结果调用 `resolve` 或 `reject` 来决定 Promise 的状态。
在使用时,你可以按照上述示例调用 `request` 函数,并使用 `.then()` 处理成功的响应,使用 `.catch()` 处理错误情况。
阅读全文