uniapp同一个方法中使请求同步执行,详尽一些
时间: 2023-08-21 11:02:53 浏览: 51
Uniapp 中的请求一般是异步执行的,如果要在同一个方法中使请求同步执行,可以考虑使用 Promise 或 async/await。
使用 Promise 的方法:
1. 在请求前创建 Promise。
```javascript
function request() {
return new Promise((resolve, reject) => {
uni.request({
url: '',
success: (res) => {
resolve(res);
},
fail: (error) => {
reject(error);
}
});
});
}
```
2. 在方法中使用 await 等待请求完成。
```javascript
async function getData() {
try {
const res = await request();
// 请求完成后的操作
} catch (error) {
// 请求失败的操作
}
}
```
使用 async/await 的方法:
1. 在方法中使用 async 关键字声明异步函数,并使用 await 等待请求完成。
```javascript
async function getData() {
try {
const res = await uni.request({
url: ''
});
// 请求完成后的操作
} catch (error) {
// 请求失败的操作
}
}
```
注意:使用同步请求可能会导致页面卡顿,建议尽量避免使用。如果需要同步请求,可以考虑使用 Web Worker 等技术来实现。