本记录基于 setup语法糖中的await
原因:将数据刷新绑定在pinia监听上,导致await内调用多个接口,属于书写错误(不得不说pinia的响应真的快)
在await中如果调用多个后端接口,后端未开启多线程但接口间有响应快慢,会出现’伪‘多线程。
例如先修改数据,后查询数据(几乎是同时请求,但监听的结果来看确实有先后),结果确实先得到修改前的查询结果,后修改。
两种解决方法——
一····
将需要后触发的函数添加定时器
const xxxx = async () =>{
await fn1() => {
clearTimeout(timer.value)
timer.value = setTimeout(() => {
fn2()
}, 100)
}
}
二·····
老老实实写在await外面
const xxxx = async () =>{
await fn1() => {
}
fn2()
}