uni.request是异步请求,如何改为同步请求?await?怎么用?
- 发布:2018-08-30 11:14
- 更新:2022-09-24 10:19
- 阅读:27672
uni.request是异步请求,如何改为同步请求?await?怎么用?
我就说嘛uni.request在success回调里面的打印的数据老是等uni.request后面的程序后面的程序执行完了后他才打印出来,好坑啊!我是说数据HTTP获取后TM不能用,各种办法都实验完了怎么都是不行!!关键是怎么解决啊!!
https://uniapp.dcloud.io/api/README 里有如下文字:
uni-app 对 API 进行了 Promise 封装,如无 success、fail、complete 参数,将以 Promise 返回数据。
试了uni.request,不对啊!
// 默认方式
uni.request({
url: 'https://www.example.com/request',
success: (res) => {
console.log(res.data);
}
});
// Promise
uni.request({
url: 'https://www.example.com/request'
})
.then(data => {//data为一个数组,数组第一项为错误信息,第二项为返回数据
var [error, res] = data;
console.log(res.data);
})
// Await
function async request () {
var [error, res] = await uni.request({
url: 'https://www.example.com/request'
});
console.log(res.data);
}
javatong
这种封装谁都会,现在问题是有那种必须双同步的,比如获取token,getToken方法会检验过期,过期的话刷新token,此时需要同步,getToken也需要同步,你这样用await,ajax请求是同步了,getToken方法变异步了
2019-09-10 18:15