Skip to content

[js] 第87天 请写一个sleep(暂停)函数 #602

Open
@haizhilin2013

Description

@haizhilin2013
Collaborator

第87天 请写一个sleep(暂停)函数

Activity

dondonZh

dondonZh commented on Jul 12, 2019

@dondonZh

function sleep(d){
for(var t = Date.now();Date.now() - t <= d;);
}

sleep(5000); //当前方法暂停5秒
摘自博客

ghost

ghost commented on Jul 12, 2019

@ghost
  • 不要写同步的暂停函数。它会让你的程序卡死。
  • 写一个异步的暂停函数,这样可以在任何 async function 中暂停,且只暂停这一部分代码。
function sleep(milliseconds: number) {
    return new Promise<void>(resolve =>
        setTimeout(resolve, milliseconds))
}
void async function main() {
    // … do something …
    await sleep(5000)
    // … do something else …
}()
nowherebutup

nowherebutup commented on Jul 12, 2019

@nowherebutup
    function sleep(ms) {
      return new Promise((resolve, reject) => {
        setTimeout(resolve, ms);
      });
    }
    async function test() {
      console.log(1111111);
      await sleep(1000);
      console.log(222222);
    }

    test();
  • 利用async/await写比较好,用for/while循环来sleep,其实页面的js还是运行
sky-bear

sky-bear commented on Jul 12, 2019

@sky-bear

const sleep = time => new Promise(resolve => setTimeout(resolve,time))
调用
sleep(5000).then(() =>{console.log(1)})

fireairforce

fireairforce commented on Jul 12, 2019

@fireairforce

const sleep = time => new Promise(resolve => {
setTimeout(resolve,time)
});

xxf1996

xxf1996 commented on Jul 14, 2019

@xxf1996

直接用promise撸一个:

function sleep (t) {
	return new Promise((resolve, reject) => {
		setTimeout(() => {
			resolve()
		}, t)
	})
}
Vi-jay

Vi-jay commented on Aug 1, 2019

@Vi-jay
        function sleep(time, isAsync) {
            if (isAsync) return new Promise((resolve) => setTimeout(resolve, time));
            const cur = Date.now();
            while ((Date.now() - cur) < time) {
            }
        }
smile-2008

smile-2008 commented on Mar 3, 2021

@smile-2008
  • 不要写同步的暂停函数。它会让你的程序卡死。
  • 写一个异步的暂停函数,这样可以在任何 async function 中暂停,且只暂停这一部分代码。
function sleep(milliseconds: number) {
    return new Promise<void>(resolve =>
        setTimeout(resolve, milliseconds))
}
void async function main() {
    // … do something …
    await sleep(5000)
    // … do something else …
}()
xiaoqiangz

xiaoqiangz commented on Jun 22, 2022

@xiaoqiangz

function sleep(times) {
return new Promise((resolve)=> {
setTimeout(()=> {
resolve()
}, times)
})
}

async function run() {
await sleep(5000)
console.log('执行结束')
}
run()

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    jsJavaScript

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @smile-2008@haizhilin2013@xiaoqiangz@xxf1996@Vi-jay

        Issue actions

          [js] 第87天 请写一个sleep(暂停)函数 · Issue #602 · haizlin/fe-interview