为什么第二次启动服务后说找不到 access_token
来源:2-6 第二天 票据 access_token 打开新世界大门
colpu
2016-05-04
function Wechat(opts){ let _this = 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 _this.updateAccessToken() } if(_this.isValidAccessToken(data)){ Promise.resolve(data); }else{ return _this.updateAccessToken() } }) .then(function(data){ _this.access_token = data.access_token; // 这里报错了??第二次启动服务的时候 _this.expires_in = data.expires_in; _this.saveAccessToken(data); }) }
Unhandled rejection TypeError: Cannot read property 'access_token' of undefined
at E:\360yun\study\koa\koa\g.js:33:29
第一次启动会写入wechat.txt文档
11回答
-
Scott
2016-05-04
this.getAccessToken()
.then(function(data){
前面需要加一个 return
这个问题好多同学都碰到了,是我课程前面不小心埋下的一个坑
362016-12-18 -
百年叔叔
2016-11-16
大家好,我加了但是并没有卵用啊。也是这个错误
10 -
WyattWang
2016-07-15
function Wechat(opts) {
var that = this
this.appID = opts.appID
this.appSecret = opts.appSecret
this.getAccessToken = opts.getAccessToken
this.saveAccessToken = opts.saveAccessToken
return this.getAccessToken()
.then(function(data) {
try {
data = JSON.parse(data)
} catch(e) {
return that.updateAccessToken()
}
if (that.isValidAccessToken(data)) {
Promise.resolve(data)
} else {
return that.updateAccessToken()
}
})
.then(function(data) {
that.access_token = data.access_token
that.expires_in = data.expires_in
that.saveAccessToken(data)
})
}
112017-08-21 -
慕ke小粉si儿
2018-08-01
在哪里找
00 -
qq_khrystal_0
2017-01-17
在上传临时素材报这个错误
{ errcode: 48001,
errmsg: 'api unauthorized hint: [8nrNMA0148vr47!]' } }
应该是因为我的接口权限未获得, 怎么解决呢?
00 -
慕粉1742311753
2016-12-13
创建微信菜单那里 报错
Unhandled rejection TypeError: Cannot read property 'then' of undefined
是怎么回事?
00 -
qq_khrystal_0
2016-09-21
Wechat.prototype.fetchAccessToken = function(data) {
...
}
这个data参数有什么作用??
012016-09-22 -
慕ke小粉si儿
2016-09-19
同样碰到,领教了
00 -
落叶无痕
2016-07-26
有点奇怪为什么老师的没加也正常
00 -
Scott
2016-07-16
fetchAccessToken 里面也需要加的
Wechat.prototype.fetchAccessToken = function(data) { var that = this return this.getAccessToken() .then(function(data) { try { data = JSON.parse(data) } catch(e) { return that.updateAccessToken() } if (that.isValidAccessToken(data)) { return Promise.resolve(data) } else { return that.updateAccessToken() } }) .then(function(data) { that.saveAccessToken(data) return Promise.resolve(data) }) }
返回这个 promise,才能让后面的流程继续通过 then 向下执行
032016-08-19 -
慕粉3389384
2016-06-16
同碰到,能解释下这个return具体加在哪?为什么要加么?谢谢!
042016-10-18
相似问题