收藏
回答

【问题已解决】云函数中的axios突然不执行请求,怎么回事?

问题描述

在用户支付完之后,要将支付结果推送到我们的业务系统,之前使用axios一直正常。

微信小程序云函数、业务系统都没有做任何调整,发现最近一直收不到客户付款的推送。

问题分析

结过排查发现,axios执行请求的代码,没有执行。

包的依赖情况(我看有人反馈axios版问题,我的正好是0.27.2,应该要是正常才对。)

{

  "dependencies": {

    "axios": "^0.27.2",

    "md5": "^2.3.0",

    "qs": "^6.11.0",

    "wx-server-sdk": "*"

  }

}

日志结果

代码片段1、2、3都没有执行到,也不报错,也没有异常信息。

结论

之前axios请求一切正常,突然不请求,结合日志打印的情况,应该是最近云函数的环境有什么调整,具体什么原因,怎么回事,怎么修改,坐等回复。

问题解决方案

从昨天咨询到今天,售后一直在跟进这个问题,感觉售后对问题也表示怀疑,因为售后那边反馈node16环境下验证代码逻辑没有问题,axios能正常执行请求。面对这种答复,我再次表示本地正常,云上不正常。 然后,售后说axios 调用前加上 await 试试,然后这么一试,加上await之后云上就正常了。

问题产生的原因

axios 请求是异步,云函数执行完之后,生命周期就结束了,而异步执行的还没执行。导致业务异常。

在这里对售后服务的耐心点赞。

意外收获

解决了业务上的小Bug

之前没有加await,从严格意义上来讲,也是有bug的。在没有完成axios请求后,就给微信返回了成功,如果通知真的失败了,就形成了支付通知的特殊情况。因为之前不加await,axios请求也能正常请求,而且基本上没有出现过异常情况,所以之前隐藏的小bug也没有出现过。现在因为云上环境异步执行的axios存在不执行的情况,加上了await变成了同步,也解决了之前业务上的小bug。

最后一次编辑于  2023-08-05
回答关注问题邀请回答
收藏

1 个回答

  • 神经蛙
    神经蛙
    2023-08-04

    问题补充

    1.本地正常执行axios

    2.云上axios请求不执行。云上axios请求不执行的问题,是最近才发现的。我这边的记录显示 2023-05-31 的支付通知都是正常的。 后来我关闭支付功能,最近又重新开启的。 问题应该是 2023-05-31 到8月初这个时间里形成的。



    2023-08-04
    有用
    回复
登录 后发表内容