关于 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
相似问题
关于Promise的问题
回答 1
关于用户分组功能
回答 1