首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在javascript中睡觉

在javascript中睡觉
EN

Stack Overflow用户
提问于 2020-08-31 09:24:45
回答 2查看 100关注 0票数 0

我正在尝试创建类似幻灯片放映的东西,在延迟之后会自动移动。我真的不明白承诺是如何工作的,所以我发现自己无法创造睡眠功能。有什么解决办法吗?

代码语言:javascript
复制
const startBtn = document.querySelector('.startBtn');
const box = document.querySelector('.box')

startBtn.addEventListener('click', () => {
    for(var i = 1; i <= 20;i++){
        //sleep(60000);  <= the problem
        box.style.transform = 'translateY(' + (-i * 100) + 'vh)';
    }
});
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-08-31 09:27:36

最简单的方法是使用setTimeout:

代码语言:javascript
复制
setTimeout(function(){ alert("Hello"); }, 3000);

请参阅:https://www.w3schools.com/jsref/met_win_settimeout.asp

也许您需要考虑setInterval来解决您的问题。在这两种情况下,您必须稍微修改解决方案,for循环不会对您有多大帮助。

票数 0
EN

Stack Overflow用户

发布于 2020-08-31 09:51:08

代码语言:javascript
复制
function sleep(delay){
    return new Promise(resolve=>{
        setTimeout(resolve,delay);
    })
}

const fn = async () =>{
    let pre = new Date()
    console.log(pre);
    await sleep(2000);
    let after = new Date();
    console.log(after - pre);
}



startBtn.addEventListener('click', async() => {
    for(var i = 1; i <= 20;i++){
       // sleep i*1000 seconds
       await sleep(i* 1000);
       box.style.transform = 'translateY(' + (-i * 100) + 'vh)';
    }
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63668157

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档