我正在使用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或更好的方式呢? 提前谢谢。
答案 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
。