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

一、题目

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

二、代码实现

思路:

  • 方法一:通过Promise实现
  • 方法二:async/await
  • 方法三:从Generator配合yield进行实现

方法一;通过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");
      })

你可能感兴趣的:(【JS编程系列】实现一个sleep函数)