美文网首页
【JS编程系列】实现一个sleep函数

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

作者: 前端葱叶 | 来源:发表于2021-11-04 23:58 被阅读0次

    一、题目

    题目:实现一个函数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函数

          本文链接:https://www.haomeiwen.com/subject/ptawaltx.html