使用ts文件封装uni.request
时间: 2024-03-16 20:19:56 浏览: 91
uniapp 请求代码封装
以下是一个使用TypeScript封装uni.request的示例代码:
```typescript
interface RequestOptions extends UniApp.RequestOptions {
url: string;
}
function request(options: RequestOptions): Promise<any> {
return new Promise((resolve, reject) => {
uni.request({
...options,
success(res) {
resolve(res.data);
},
fail(res) {
reject(new Error(`request fail, statusCode=${res.statusCode}`));
},
});
});
}
export default request;
```
这个封装函数接受一个RequestOptions类型的参数,这个类型是在UniApp中预定义的请求参数类型的扩展,加上了一个必须的url属性。在函数内部,使用Promise封装uni.request方法,通过success和fail回调函数来判断请求是否成功,并返回相应的结果或错误信息。
使用时,可以这样调用:
```typescript
import request from '@/utils/request';
async function fetchData() {
try {
const data = await request({
url: 'https://example.com/api',
method: 'GET',
});
console.log(data);
} catch (error) {
console.error(error);
}
}
```
这里使用了async/await语法来简化异步请求的写法,并使用try/catch语句来处理请求错误。
阅读全文