Promise.all() 添加27个异步请求然后.then执行不了

Promise.all([p1,p2,p3..........]) 添加27个异步请求然后.then执行不了,为啥? 试了一下12个就可以执行。

阅读 3.4k
1 个回答

thencatch 都没有执行?那么我们基于这个前提分析一下问题(then 和 catch 都没有执行)

Promise.all 是什么时候执行 then 呢?[p1, p2, p3,...] 都执行完成,也就是 resolved 状态。那么问题就很显然了,必定是因为里面有的没有没有执行完

解决方法。

  1. 内部设置一个超时时间。
  2. 排查内部逻辑。看看是因为什么卡住了。

    1. 网络问题,因为瞬时流量太大,导致所有请求都延时了
    2. 有没有处理到的逻辑(比如说取任务执行,结果任务被执行了,然后他就傻了)
    3. 死锁之类的逻辑
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题