TypeError: Cannot read property 'expires_in' of undefined

来源:1-3 第一天 微信号分类和功能

慕少1471586

2017-03-24

this.getAccessToken()
 .then(function(data){
  try{
   data = JSON.parse(data)
  }
  catch(e){
   console.log(e)
  }

  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)
 })
}

Wechat.prototype.updateAccessToken = function(){
 var appID = this.appID
 var appSecret = this.appSecret
 var url = api.accessToken + '&appid=' + appID + '&secret=' +
  appSecret

 return new Promise(function(resolve,reject){
  request({url: url, json: true}).then(function(response){
   var data = response[1]
   var now = (new Date().getTime())

   var _expires_in = now + (data.expires_in - 20)*1000
   
   data.expires_in = _expires_in

   resolve(data)
  }) 


写回答

3回答

Scott

2017-03-24

if(that.isValidAccessToken(data)){
   Promise.resolve(data)
  }


中少了 return,这样改

 if(that.isValidAccessToken(data)){
   return Promise.resolve(data)
  }


0
0

YJCHENF

2020-10-09

加了return为什么还不行啊

0
0

YJCHENF

2020-10-09

if(that.isValidAccessToken(data)){

   return Promise.resolve(data)

  }

这样改了为什么还是不行啊

0
0

7天搞定Node.js微信公众号

Koa框架、ES2015新特性、MongoDB,开发微信公众号

1742 学习 · 787 问题

查看课程