jQuery在“每次”迭代中休眠,并在迭代完成后调用函数

时间:2018-10-22 11:20:18

标签: javascript jquery asynchronous

我想遍历某个类的每个元素,并逐一显示它们,但是它们之间会出现随机延迟。

棘手的部分是,我想以线性方式进行操作,所以我不会为每个元素开始一个新的线程,因为那样以后,元素将被随机显示(因为延迟也是随机的)。

完成此操作后,我想运行另一部分代码。

我现在所看到的是这样,但是您可以看到延迟设置为固定的数量(以免弄乱元素的顺序)

jQuery('.myclass').each(function(index) { 
    jQuery(this).delay(1000 * index).fadeIn(0); 
}).promise().done(function() {
    //run code that has to run when the iteration is finished
});

还有另一种方法可以实现这一点,在该情况下甚至可能不需要使用Promise,以及何时进行迭代的回调?

一种更线性的方法,我会在迭代之间“沉睡”,像这样吗?

jQuery('.myclass').each(function(index) {
    jQuery(this).show(); 
    //sleep somehow for 1 or 2 seconds
})
//run code that has to run when the iteration is finished

0 个答案:

没有答案