使用prosmise链式调用可以实现延时调用的效果

class  Person {constructor(name){this.name = name;this.queue = Promise.resolve();this.sayHello();}sayHello(){console.log('say hello to:'+this.name);return this;}sleep(timer){this.queue = this.queue.then(() => {return new Promise(resolve=> {console.log('sleeping,wait:'+timer+'s')setTimeout(() => {resolve()},timer*1000)})})return this;}eat(fruit){this.queue = this.queue.then(() => {return new Promise(resolve => {console.log(this.name + ' like to eat' + fruit)resolve()})})return this;}}
let o = new Person('bihuan');
o.sleep(3).eat('banana').sleep(5).eat('peach')
复制代码

执行结果,如下:

//say hello to:bihuan
//sleeping,wait:3s
//bihuan like to eatbanana
//sleeping,wait:5s
//bihuan like to eatpeach
复制代码

转载于:https://juejin.im/post/5d030a4f51882544d33ba371

一个class运用promise的延时调用相关推荐

  1. swift 多线程GCD和延时调用

    GCD 是一种非常方便的使用多线程的方式.通过使用 GCD,我们可以在确保尽量简单的语法的前提下进行灵活的多线程编程.在 "复杂必死" 的多线程编程中,保持简单就是避免错误的金科玉 ...

  2. Swift - GCD 和延时调用

    GCD 是一种非常方便的使用多线程的方式.通过使用GCD,我们可以在确保语法尽量简单的前提下进行灵活的多线程编程.在"复杂必死"的多线程编程中,保持简单就是避免错误的金科玉律.好消 ...

  3. JS 通过 Promise 实现延时执行,支持链式调用

    JS 通过 Promise 实现延时执行,支持链式调用 延时执行 sleep 版本一 同步执行 异步方式 sleep 版本二 支持链式调用 版本一 版本二 参考资料 延时执行 定义sleep函数 sl ...

  4. 实现一个完美符合Promise/A+规范的Promise

    原文在我的博客中:原文地址 如果文章对您有帮助,您的star是对我最好的鼓励- 简要介绍:Promise允许我们通过链式调用的方式来解决"回调地狱"的问题,特别是在异步过程中,通过 ...

  5. es5如何实现promise_彻底理解Promise对象——用es5语法实现一个自己的Promise(上篇)...

    众所周知javascript语言的一大特色就是异步,这既是它的优点,同时在某些情况下也带来了一些的问题.最大的问题之一,就是异步操作过多的时候,代码内会充斥着众多回调函数,乃至形成回调金字塔.为了解决 ...

  6. 实现同步请求_图解 Promise 实现原理(二)—— Promise 链式调用

    摘要 很多同学在学习 Promise 时,知其然却不知其所以然,对其中的用法理解不了.本系列文章由浅入深逐步实现 Promise,并结合流程图.实例以及动画进行演示,达到深刻理解 Promise 用法 ...

  7. 60-300-024-使用-延迟数据-Flink中延时调用设计与实现

    1.世界 2.概述 在电商商品购买过程中有这样一些场景:用户点击下单,此时订单处于待支付状态,如果在2小时之后还处于待支付状态那么就将这笔订单取消,置为取消状态:用户收货之后可以对商品进行评价,如果在 ...

  8. js定时器和延时调用的使用

    javascript定时器使用 可以使用setInterval(回调函数,间隔时间)函数,定时调用一段程序 回调函数本质就是一个函数(有点废话),但它是JS帮我们调用的,所以叫回调函数. 间隔时长单位 ...

  9. JS中定时器和延时调用学习笔记

    JS中定时器和延时调用 在JS中希望一个函数重复的执行,可以为该函数设置一个定时装置 方法: setInterval(); 该方法可以将一个函数,每隔一段时间被调用一次 有两个参数 第一个是回调函数, ...

最新文章

  1. 推荐一款超级好用的开源画图工具:用例图、架构图、时序图、类图、E-R图、甘特图
  2. OpenFire源码学习之二十五:消息回执与离线消息(下)
  3. 深入浅出理解神经网络召回模型的优势
  4. 如何通过http从linux下载文件,linux – 我可以通过http验证大量文件下载吗?
  5. 2021年四川省政府工作报告:促进5G、大数据、区块链等技术与传统产业融合发展
  6. 【php更换数据库为orcle】phpstudy+orcle
  7. Python核心编程(第三版)课后习题解答——第二章
  8. 海思hitool工具使用
  9. 关于.dll文件的注册,如何注册.dll文件
  10. 如何修改Android APP的图标和名字
  11. excel小技巧之--自定义序列
  12. php 数独计算器,问题描述:数独(Sudoku)是一款大众喜爱的数字逻辑游戏。玩家需要根据9X9盘面上的已知数字_题来了...
  13. 怎样实现在微信中直接下载APK
  14. ubuntu搭建vpn步骤
  15. android 多个aar合并,Android多模块构建合并aar解决方案
  16. 【芯片应用】DAC8554
  17. 2020年小红书直播报告
  18. 项目经理面对项目陷困境该这样采取措施
  19. 公众无线局域网体系结构和运营模式
  20. 安卓手机通过蓝牙与单片机通信

热门文章

  1. JAVA就业指导(转)
  2. python2.0_s12_day10_rabbitMQ使用介绍
  3. JAVA基础代码分享--学生成绩管理
  4. android 内部类的优化
  5. asp.net中jQuery $post用法
  6. InnoDB redo log格式-物理log
  7. 适用于WIFI Hacking的无线网卡推荐
  8. Microsoft Azure Express Route (专线直连)到云端数据中心(2)
  9. php-fpm定义成集群资源时报错解决方法
  10. 5.对象和面向对象3——类的定义