请问为何我的请求出现两次返回结果?

发布于 2022-09-30 23:11:55 字数 1136 浏览 39 评论 0

我是想做一个自定义分享的接口,后台用node书写,过程中用到了异步转同步以及axios,但在调试的时候发现如下错误:
image.png
我的代码实现如下:

function getAccesstoken () {
  return new Promise(resolve => {
    let access_token = cache.get('access_token', true)
    console.log('缓存中获取 access_token', access_token)
    if (!!access_token) {
      // res.send(access_token)
    } else {
      console.log('缓存中不存在 access_token / access_token 超过缓存时间')
      // 请求获取 access_token
      axios.get('https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=xxxxxxxxx&secret=xxxxxxxxx').then(res => {
        // 设置缓存 时间单位为S
        console.log('access_token', res.data.access_token)
        cache.set('access_token', res.data.access_token, 7000)
        resolve(res.data.access_token)
      }).catch(err => {
        console.log('access_token 请求失败', err)
      })
    }
  })
}

app.get('/share', async (req, res) => {
  let access_token = await getAccesstoken()
  console.log('access_token', access_token)
  res.send(access_token)
})

请问为何会出现赭红情况呢?应该如何解决?还望解答,谢谢!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

时光是把杀猪刀 2022-10-07 23:11:55

promise 的 catch 没捕获吧,具体的错误就在这里呀。你console一下看看是个什么东西

image.png

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文