【JS编程系列】实现一个sleep函数

2021-11-03  本文已影响0人  前端葱叶

一、题目

题目:实现一个函数sleep,先输出A,1秒之后输出B,有什么方案吗?

二、代码实现

思路:

方法一;通过Promise实现

 console.log("A");
 function sleep(time) {
        return new Promise((resolve) => {
          setTimeout(() => {
            resolve();
          }, time);
        });
      }
      sleep(1000).then(() => {
        console.log("B");
      });

方法二:async/await

 console.log("A");
 function sleep2(time) {
        return new Promise((reslove, reject) => {
          setTimeout(() => {
            reslove();
          }, time);
        }).then(() => {
          console.log("B");
        });
      }
      async function sleepAsync() {
        await sleep2(1000);
      }
      sleepAsync();

方法三:从Generator配合yield进行实现

console.log("A");
const sleep = ((time)=>{
        return new Promise((resolive)=>{
          setTimeout(()=>{
            resolve();
          },time)
        })
      })

      function* sleepGenerator(time){
        yeild sleep(time);
      }

      sleepGenerator(1000).next().value.then(()=>{
        console.log("B");
      })
上一篇 下一篇

猜你喜欢

热点阅读