为了避免在 vue api 服务客户端上并发,我添加了 locks。虽然锁效果很好,但应用程序的第一次加载会发出多个错误,提示“无法在‘LockGrantedCallback’上执行‘调用’:提供的回调不再可运行。”,并且缺少一些数据。
所有服务功能如下:
async myfunc() {
await navigator.locks.request("data", async () => {
if (isNil(store.data)) {
await this.updateToken(); // update this.token.accessToken
let response = await Get(dataUrl, this.token.accessToken);
store.data = response.data;
}
});
return store.data;
}
关于服务的更多细节:
服务在App.vue中初始化如下
provide() {
return {
myService: new MyService(msal),
};
}
使用该服务的所有组件都将其作为注入实例接收
inject: ['myService']
我做错了什么?