怎么在Promise.all中对于拒绝进行处理

  介绍

怎么在Promise.all中对于拒绝进行处理?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

<代码> Promise.all (requestPromises) (…) .catch(…)>

let  failedList =, []   function  getDataById  (id),{//大敌;这是单个请求   ,return  new 承诺(function (解决,,拒绝),{   getResponse才能(id,决心,,拒绝)   ,}).catch (e =祝辞,{   failedList.push才能(arguments.callee (id),//,如果失败,就重新发起请求,并将该请求的承诺放入failedList中以便后续处理   ,})   }   function  getResponse  (id,决心,,拒绝),{,//模拟返回结果   ,setTimeout((),=祝辞,{   if 才能;(math . random(),祝辞,0.8),解决({id,味精:& # 39;好# 39;})   else 才能拒绝({id,味精:& # 39;错误# 39;})   ,},1000)   }   const  RequestList =, [getDataById (1), getDataById (2), getDataById (3))   fetchData (RequestList)   let  counter =, 1,//,请求次数   let  maxRequestTimes =, 5,//,最大请求次数,因为有可能别个页面就是访问不了,请求多少次也没用神;神;   let  result =,[],//,最后的结果   function  fetchData  (requestList),{,//这里是对请求结果的处理   ,Promise.all (requestList) (resolve =祝辞,{   result 才能=,result.concat (resolve.filter(小姐:=祝辞,i)),//,过滤器返回真实的时候保留该数组项,因为getDataById的捕捉里没有给返回值(这里也不需要),这里的决心里就会有定义,需要过滤掉   let 才能;failedLength =failedList.length   if 才能;(failedLength 祝辞,0,,,,counter  & lt;, maxRequestTimes),{,//如果失败列表里有请求,并且请求次数不超过设定的值,就进行下一次请求,并且打出日志   ,才能console.log(“第${柜台}次请求完成,其中成功$ {RequestList.length 作用;failedLength}个失败{failedLength}个美元,正在进行第${+ +柜台}次请求……”)   ,,fetchData (failedList)   ,,failedList =,[],//,这里要清空failedList,不然会一直调用。不用担心,下一次请求失败的会在getDataById填充到failedList里。   ,,},else {,//表示所有请求都成功了,或者达到了最大请求次数。到这里就可以对结果做进一步处理了。   ,,console.log(“请求完成,共请求${柜台}次,其中成功$ {RequestList.length 作用;failedLength}个失败$ {failedLength}个\ n ',,结果)   ,,counter =1   ,,}   ,}).catch (e =祝辞,{   console.log才能(e)   ,})   }

怎么在承诺。所有中对于拒绝进行处理

关于怎么在Promise.all中对于拒绝进行处理问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。

怎么在Promise.all中对于拒绝进行处理