关于 getAccessToken()
来源:
万思琪
2016-06-10
我的程序如下
function Wechat(opts){ var that = this; this.appID = opts.appID; this.appSecret = opts.appSecret; this.getAccessToken = opts.getAccessToken; this.saveAccessToken = opts.saveAccessToken; this.getAccessToken() .then(function(data){ try{ data = JSON.parse(data) } catch(e){ return that.updateAccessToken() } if(that.isValidAccessToken(data)){ console.log('resolve data',data) Promise.resolve(data) } else{ return that.updateAccessToken(data) } }) .then(function(data){ console.log('then data',data) that.access_token = data.access_token that.expires_in = data.expires_in that.saveAccessToken(data); }) }
这是我第二次执行代码, wechat.txt 已经存在了 然后console.log('resolve data',data)打印的值是正确的, 在 then 方法里面接收到的 data 是 undefined(console.log('resolve data',data)) 请问这个问题怎样解决
写回答
1回答
-
万思琪
提问者
2016-06-10
解决了
function Wechat(opts){ var that = this; this.appID = opts.appID; this.appSecret = opts.appSecret; this.getAccessToken = opts.getAccessToken; this.saveAccessToken = opts.saveAccessToken; this.getAccessToken() .then(function(data){ try{ data = JSON.parse(data) } catch(e){ return that.updateAccessToken() } if(that.isValidAccessToken(data)){ console.log('resolve data',data) return Promise.resolve(data) } else{ return that.updateAccessToken(data) } }) .then(function(data){ console.log('then data',data) that.access_token = data.access_token that.expires_in = data.expires_in that.saveAccessToken(data); }) }
在 Promise.resolve(data) 前面加个 return 就好了 虽然不明白为什么. 有人能解释下吗?
我认为是在 then 里面 不能用 resolve 方法的吗?
012017-03-26
相似问题