Welcome to WuJiGu Developer Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
411 views
in Technique[技术] by (71.8m points)

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

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


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

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

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

解决方法。

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

    1. 网络问题,因为瞬时流量太大,导致所有请求都延时了
    2. 有没有处理到的逻辑(比如说取任务执行,结果任务被执行了,然后他就傻了)
    3. 死锁之类的逻辑

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to WuJiGu Developer Q&A Community for programmer and developer-Open, Learning and Share
...