tips:真的是翻来覆去的看,一直到问题解决,还是不太清楚异常的原因。

场景是这样的,最近在做活动,流量可能比较大,然后就在检查相关功能页面的性能,突然发现小程序如果网络切换的时候重新进的话(比如开飞行再切回4G), network里请求的接口就会pending住。

一开始以为是接口问题, 但是后端查了一下日志,发现什么都没有进去

再去看了一下别的小程序,随便看了几个,都没有这样的情况

整个人当时直接是就慌掉了。

又是断点又是真机找了半天原因, 发现了一个奇怪的地方

先讲一下我们的机制, 就很常规的,用户进来要 先拿wx.login的code从我们自己的login接口里换用户信息 什么的,拿到了之后别的接口才会调。

那个异常就是发生在上面👆划线的过程中

如果是常规进入的话,无论场景是什么, 整个取数据的流程都没有问题

唯独是断网再重连的情况下 在wx.login回调里的接口就会卡住(几番尝试发现和接口自身没有任何关系,换了很多不同的接口,包括域名/协议,最后甚至拿百度搜索引擎里随便拿个接口都一样会pending)

翻来覆去改代码发现就是这里的问题

看到这我感觉这可能是开发者解决不了的异常了, 可能是wx.login在弱网状态下和微信那边的通信触发了什么诡异的东西。

那么为什么别的小程序复现不出来这个问题呢?

想了差不多半个小时,我发现了一个不正常的地方。

常规的登录流程是不会每次打开小程序都去刷wx.login的 一般是把token之类的存到storage里, 在请求里封装token过期的刷新处理。

然后现在这个小程序是每次进来都会重新刷一遍token,

我把机制改成上面常规的之后,这个问题就没有了。

所以到底还是没有查粗来具体问题是什么。 ---- 先这样,能跑就行。

想必,最近有些 小程序 开发者,在调用wx.login()的时候,在部分IOS上无响应的情况;  补充一点:在测试模式,调试模式,都是OK的,一上正式环境就GG了,百思不得其解啊! 响应结果如下:  分析结果,我们知道,login 接口 一直处于pending状态,如果加了timeout时间后,在complate回调中可触发;  那为什么login方法一直是pending呢???? 看了微信的社区,也提了问题,但是微信官方回应,他们真机测试过,没这个情况发生;what fuck!!!见鬼了么  这就尴尬了,一边一个说辞,然后就继续解决呗!客户等着呢,锅甩给微信,客户也不答应啊! 捋了一遍代码,发现页面 异步转同步的解决方案一、前言二、 promise的概念三、promise的使用四、一个因为异步 请求 出问题的案例五、案例的解决方案1、运用promise解决异步转同步问题2、运用async+await+promise解决异步转同步问题为什么有Async/Await?什么是`async/await`呢?什么是Async什么是await案例解决 ​ 简单阐述一个困扰我们已久的问题:因为异步函数中的赋值操作是不同步的(即程序不会等该函数执行完再执行下面的函数),这样就导致了在该异步函数下面的程序的赋值操作 点击播放 GIF 0.0M点击关注 不迷路点击播放 GIF 0.0M点击播放 GIF 0.0M壹微信 小程序 网络微信 小程序 网络网络在 小程序 /小游戏中使用网络相关的 API 时,需要注意下列问题,请开发者提前了解。1. 服务器域名配置每个微信 小程序 需要事先设置通讯域名, 小程序 只可以跟指定的域名进行网络通信。包括普通 HTTPS 请求 (wx.request)、上传文件(wx.uploadFile)、... 问题排查:服务器部署服务 接口 访问出现1/2Pending状态: 问题定位:访问服务两次中一次200状态,一次Pending,所以应该定位问题在负载均衡上,先查看注册中心nacos,打开nacos首页发现一个服务有两个实例,其中一个是无法访问的。 问题解决:是由于本机开启了一个服务注册到了注册中心,但是无法访问,因此关闭本机服务或者从nacos下线本机实例,访问正常。 调用 接口 pending的解决方案 这个问题是在项目试运行一周左右出现的,最初是以为服务器承受不了压力崩溃了。后来发现调用某个查询 接口 之后pending,再之后调用任何一个 接口 全部都pending阻塞了。 定位这个API 接口 后,我在代码里加入了打印 接口 每一步调用时间,云上打印出日志。惊讶的发现这个 接口 调用之后,有一个开始时间,但是再也没能打印出结束时间。同时我还看了下Linux服务器CP... 开发环境前端:Vue 2.0后台:Node Express浏览器:Chrome部署系统:Linux问题现象在现有项目的基础之上增加了两个页面,但是在使用的过程中发现,当连续操作几次之后页面会变得奇慢无比,查看 接口 调用发现 接口 请求 长时间处于pending状态,但是等1-2分钟左右 接口 还是会返回应答结果。如下图所示:原因分析通过反复复现该问题(在各个页面之间不同切换,触发 请求 ),发现了一个规律,就是每... 服务端证书使用的是 Let's Encrypt 问题的起因是IOS系统中使用微信 小程序 请求 服务器 接口 ,首次 请求 需要等待3 ~ 10秒。导致 小程序 初次打开白屏。 在反复验证后,排除了Nginx、Tomcat、Java等问题。最终锁定了问题出在HTTPS证书上。 最终参考了V站大佬的帖子才恍然大悟。 https://v2ex.com/t/665734 在某些系统以及某些特定的浏览器下...