在每个对象初始化上添加时间

add time on each object initialization

我正在使用以下代码初始化 jQuery 通知插件。我使用 setTimeout 函数来延迟每个对象的初始化。

if(applicablePromotions.length > 0){
    applicablePromotions.forEach(function(promo){
        setTimeout(function(){
            $.amaran({
                content:{
                    title:'Your Download is Ready!',
                    message:'1.4 GB',
                    info:'my_birthday.mp4',
                    icon:'fa fa-download'
                },
                theme:'awesome ok',
                position:'top left',
                inEffect:'slideRight',
                outEffect:'slideLeft'
            });
        },1000)
    })
}

问题是所有对象都在延迟时间段后显示。每个对象没有时间差异。如何实现每个对象的时差。

我使用以下插件:http://hakanersu.github.io/AmaranJS/

你的代码中的问题是数组中的所有元素都使用了 1000 ms 的恒定延迟,因为你想一个一个地显示,你可以使用像

这样的动态延迟
if (applicablePromotions.length > 0) {
    applicablePromotions.forEach(function (promo, i) {
        setTimeout(function () {
            $.amaran({
                content: {
                    title: 'Your Download is Ready!',
                    message: '1.4 GB',
                    info: 'my_birthday.mp4',
                    icon: 'fa fa-download'
                },
                theme: 'awesome ok',
                position: 'top left',
                inEffect: 'slideRight',
                outEffect: 'slideLeft'
            });
            //use a dynamic delay
        }, (i + 1) * 1000)
    })
}