在/src/main.ts中,我有一个获得验证Auth状态的令牌的服务:
if (TokenService.getAccessToken() !== undefined) {
...
}token.service.ts
import storage from '@/plugins/storage'
const ACCESS_TOKEN_KEY = "access_token";
const TokenService = {
getAccessToken(){
storage.get(ACCESS_TOKEN_KEY).then(v => {
return v
})
},
async saveAccessToken(accessToken: string) {
storage.set(ACCESS_TOKEN_KEY, accessToken);
},
}
export { TokenService };storage.ts:
import { Storage, Drivers } from '@ionic/storage'
const localStorage = new Storage()
localStorage.create()
const storage = {
set: async(i: any, v: any) => {
await localStorage.set(i, v)
},
get(i: any){
return localStorage.get(i)
},
remove: async (i: any) => {
await localStorage.remove(i);
},
clear: async () => {
await localStorage.clear();
}
}
export default storage我只得到未定义的,但是当在storage.ts中使用console.log()时,我得到了值,但在应用程序启动之后。
我还使用这个函数在/router/index.ts中创建了一个条件,当我使用localStorage时,我很好地得到了这些值。
我的依赖关系:
"@ionic-native/secure-storage": "^5.31.1",
"@ionic/storage": "^3.0.4",
"@ionic/vue": "^5.6.0-dev.202102221703.5300dcc",
"@ionic/vue-router": "^5.6.0-dev.202102221703.5300dcc",
"vue": "^3.0.0-0",
"vue-router": "^4.0.0-0",
"vuex": "^4.0.0-rc.2",我能做什么?谢谢!
发布于 2021-04-29 02:23:38
我在您的token.service.ts中发现了一个问题,您不会在:getAccessToken上返回任何内容
// async since is returning a promise
async getAccessToken(){
// Returning the promise.
return storage.get(ACCESS_TOKEN_KEY)
}从外部使用它将如下所示:
// using await because we want the promise to be solved
if ((await TokenService.getAccessToken()) !== undefined) {
...
}https://stackoverflow.com/questions/67309966
复制相似问题