经常有业务需求,要等几秒才进行下一步操作。还可以进行防抖节流。

一、传统方法,回调函数

// 利用回调函数
function sleep(callback,time) {if(typeof callback === 'function') {setTimeout(callback,time)}}
function output(){console.log(1);
}
sleep(output,1000);
复制代码

二、从Promise方面进行实现

// Promise
const sleep = (time) => {return new Promise((resolve, reject) => {setTimeout(resolve, time);})
}sleep(5000).then(() => {console.log('业务代码')
})
复制代码

三、从async/await进行实现

const sleep = (time) => {return new Promise((resolve, reject) => {setTimeout(resolve, time);})
}
async function sleepAsync () {await sleep(5000);console.log('业务代码')
}
sleepAsync()
复制代码

四、从Generator 配合yield进行实现

//Generator
const sleep = (time) => {return new Promise((resolve, reject) => {setTimeout(resolve, time);})
}
function* sleepGenerator(time) {yield sleep(time);
}
sleepGenerator(5000).next().value.then(()=>{console.log('业务代码')
})
复制代码

从 Promise、Async/Await 、Generator等角度实现一个 sleep 函数相关推荐

  1. async js 返回值_JS异步编程 | Async / Await / Generator 实现原理解析

    async/await实现 在多个回调依赖的场景中,尽管Promise通过链式调用取代了回调嵌套,但过多的链式调用可读性仍然不佳,流程控制也不方便,ES7 提出的async 函数,终于让 JS 对于异 ...

  2. Promise async/await的理解和用法

    Promise && async/await的理解和用法 为什么需要promise(承诺)这个东西 在之前我们处理异步函数都是用回调这个方法,回调嵌套的时候会发现 阅读性 和 调试 的 ...

  3. ES6箭头函数以及promise/async/await测试案例

    ES6箭头函数的运用 下面以一段代码解释 function one(){return 1 以上函数用箭头函数写步骤,参考下面代码 {}和里面的东西先删去 one = (里面写参数/无参数的里面为空)= ...

  4. 【面试题】前端人70%以上 不了解的promise/async await

    前言   今天给大家分享promise,笔者将从早期的异步代码的困境.promise出现解决了什么问题.异步回调地狱的终极方案并且实现async await的核心语法,其实async/await只是g ...

  5. JavaScript 回调函数/Promise/ async/await

    并发和并行 并行和并发是两个概念,容易混淆是因为并行和并发在中文意思上相近,其实在英文中,这是完全不相同的东西,并行(parallelism).并发(concurrency). 并行(parallel ...

  6. angular2 学习笔记 ( Rxjs, Promise, Async/Await 的区别 )

    Promise 是 ES 6 Async/Await 是 ES 7 Rxjs 是一个 js 库 在使用 angular 时,你会经常看见这 3 个东西. 它们都和异步编程有关,有些情况下你会觉得用它们 ...

  7. js callback promise async await 几种异步函数处理方式

    ***callback  这个是最常用的也是最简单的 ,比如在ajax网络请求中,返回请求完成返回的数据 回调函数就是把一个函数当成另一个函数的参数,可以传递函数内的局部变量,也可以异步完成一些操作, ...

  8. rust异步编程--理解并发/多线程/回调/异步/future/promise/async/await/tokio

    1. 异步编程简介 通常我们将消息通信分成同步和异步两种: 同步就是消息的发送方要等待消息返回才能继续处理其它事情 异步就是消息的发送方不需要等待消息返回就可以处理其它事情 很显然异步允许我们同时做更 ...

  9. JS实现sleep,普通版+promise+async/await

    1-1 普通版 function sleep() {var start = new Date()while(new Date() - start <= sleepTime) {}var t1 = ...

  10. JavaScript 异步 setTimeout promise async await

    异步在此就不再赘述,下面主要说一下JS中异步的实现方式. 1,setTimeout 计时器 ,实现代码如下 <!DOCTYPE html> <html lang="en&q ...

最新文章

  1. 关于批量修改AD域用户的脚本
  2. R learning 十八讲 0018-R语言绘图基础
  3. mysql安装ZIP存档什么意思_关于MySQLzip安装常见报错解决方案!
  4. ASP.NET MVC Model绑定小结
  5. 计算机ppt制作教案,全国计算机一级B考试基础篇制作人徐守威PPT教案学习.pptx
  6. PHP 的 Phar 包原来性能这么强!
  7. ros安装过后怎么找不到安装文件_ros配置乐视奥比中光相机
  8. Redis原理及拓展
  9. 15 —— npm —— package.json 与 package-lock.json 的作用
  10. 在浏览器上运行Qt应用 emscripten-qt
  11. 红标devcpp6.3编译器下载及配置教程
  12. java从入门到精通pdf第五版,满满干货指导
  13. 如何彻底卸载Anaconda?
  14. 隐马尔可夫模型python_隐马尔可夫模型HMM及Python实现
  15. JS 实现右击菜单功能
  16. 微信双开,超简单,无需bat,无需代码
  17. 服务器有固态盘系统安装,服务器有装固态硬盘吗
  18. 将doc文档生成html页面
  19. ACL-BioNLP 2020 | 耶鲁大学实践成果:生物医药知识图谱嵌入模型基准测试
  20. 如何给未签收物流备注信息

热门文章

  1. Atitit 战略之道 attilax著
  2. Atitit 软件项目的一整套解决方案(gui界面,中间,存储数据库,图像处理,全文搜索)attilax总结
  3. atitit.nfc 身份证 银行卡 芯片卡 解决方案 attilax总结
  4. Atitit. 状态模式(State)attilax 总结 跟个策 略模式的区别
  5. Atitit.500 503 404错误处理最佳实践oak
  6. TDengine:A股分钟线数据的尝试
  7. 中基协会长洪磊:尽快制定大类资产配置管理办法 推非保本理财转型
  8. 博格和他的先锋集团创业史(3): 共同基金的先驱者
  9. (转)数字货币平台的交易风险
  10. (转)区块链热潮背后的五大技术隐忧