开发者社区> 问答> 正文

实现一个 sleep 函数 #前端面试

实现一个 sleep 函数

比如 sleep(1000) 意味着等待1000毫秒,可从 Promise、Generator、Async/Await 等角度实现

展开
收起
Bill 2020-05-23 13:52:21 2039 0
1 条回答
写回答
取消 提交回答
  • 领取2折优惠劵,有几率免单哦!http://www.weilai.info/tool/326.html

    四种方式

      //Promise
      const sleep = time => {
        return new Promise(resolve => setTimeout(resolve,time))
      }
      sleep(1000).then(()=>{
        console.log(1)
      })
    
      //Generator
      function* sleepGenerator(time) {
        yield new Promise(function(resolve,reject){
          setTimeout(resolve,time);
        })
      }
      sleepGenerator(1000).next().value.then(()=>{console.log(1)})
    
      //async
      function sleep(time) {
        return new Promise(resolve => setTimeout(resolve,time))
      }
      async function output() {
        let out = await sleep(1000);
        console.log(1);
        return out;
      }
      output();
    
      //ES5
      function sleep(callback,time) {
        if(typeof callback === 'function')
          setTimeout(callback,time)
      }
    
      function output(){
        console.log(1);
      }
      sleep(output,1000);
    
    2020-05-24 11:48:51
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Vue.js 在前端服务化上的探索与实践 立即下载
阿里文娱大前端技术实践 立即下载
前端代码是怎样智能生成的 立即下载