承诺解决得太快了

时间:2018-04-24 12:13:35

标签: javascript ecmascript-6 promise es6-promise

我正在使用Promises,同时我有一个加载动画 问题是我的承诺得到了快速解决,装载机很快消失了。

所以我想发布一个承诺,如果承诺在3秒之前解决,请等待剩余时间。

示例

export const operation = () => {

  const a = new Date();

  const myPromise = doAction().then(() => {

   const b = new Date();

   if((b - a) < 3000)
      operationIsDone();
   else
     setTimeout(() => {operationIsDone();}, b - a)

  });  
}

有没有npm或更好的方式呢? 提前谢谢。

1 个答案:

答案 0 :(得分:4)

使用仅运行最短等待时间的第二个承诺要容易得多。然后使用<div class="col-lg-4 col-md-4 col-sm-6 col-xs-6 portfolio-girdz col-6" style="margin-left:-1px;"> <div class="cbp-item-wrapper"> <a href="#" class="cbp-caption cbp-singlePage"> <div class="cbp-caption-defaultWrap"> <img src="/images/activities.jpg" class="img-responsive"> </div> <div class="cbp-caption-activeWrap"> <div class="c-masonry-border"></div> </div> </a> <a href="/activities" class="cbp-l-grid-work-title cbp-singlePage">activities</a> </div> </div> 等待两者完成。 这样,如果Promise.all花费更长时间,您的脚本将始终至少等待默认延迟,但也会更长。

yourOwnPromise

有关详细信息,请参阅Promise.all