如何解决promisify filereader.onload 得到了 TypeError:无法读取 vue 中的未定义属性“then”
我试图保证 getFileContent 的原因是在我完成从本地文件系统读取刷新令牌之前,get accessToken api 调用被触发。目标是确保函数 getFileContent
被执行,然后在 munted 中触发 API 调用。我知道这不是调用返回承诺的回调的方法,但我不知道如何在每个成功的回调中实现 .then
。
提前致谢。
vue 组件方法:
getFileContent (file) {
return new Promise((resolve,reject) => {
const reader = new FileReader()
reader.onload = (event,err) => {
if (err) reject()
resolve(this.$store.commit('storage/setRefreshToken',event.target.result))
}
reader.readAsText(file)
})
},getFileSuccess (fileEntry) {
fileEntry.file(this.getFileContent)
},getFSSuccess (fs) {
fs.root.getFile('refreshToken.txt',{
create: true,exclusive: false
},this.getFileSuccess,this.errorCallback)
},errorCallback (error) {
alert('ERROR: ' + error.code)
},cordovaFSRead () {
// eslint-disable-next-line no-undef
window.requestFileSystem(LocalFileSystem.PERSISTENT,this.getFSSuccess,this.errorCallback)
}
已安装:
this.cordovaFSRead().then(() => {
console.log('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!')
console.log(this.$store.state.storage.tokens.refreshToken.length)
console.log('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!')
const getAccessToken = this.$store.dispatch('storage/getAccessToken')
if (getAccessToken === true) {
this.currentStatus = 'access token retrieved successfully'
} else {
this.currentStatus = 'token expired,please login again.'
}
}).catch(async err => {
this.currentStatus = JSON.stringify(err)
})
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。