一个class运用promise的延时调用
使用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的延时调用相关推荐
- swift 多线程GCD和延时调用
GCD 是一种非常方便的使用多线程的方式.通过使用 GCD,我们可以在确保尽量简单的语法的前提下进行灵活的多线程编程.在 "复杂必死" 的多线程编程中,保持简单就是避免错误的金科玉 ...
- Swift - GCD 和延时调用
GCD 是一种非常方便的使用多线程的方式.通过使用GCD,我们可以在确保语法尽量简单的前提下进行灵活的多线程编程.在"复杂必死"的多线程编程中,保持简单就是避免错误的金科玉律.好消 ...
- JS 通过 Promise 实现延时执行,支持链式调用
JS 通过 Promise 实现延时执行,支持链式调用 延时执行 sleep 版本一 同步执行 异步方式 sleep 版本二 支持链式调用 版本一 版本二 参考资料 延时执行 定义sleep函数 sl ...
- 实现一个完美符合Promise/A+规范的Promise
原文在我的博客中:原文地址 如果文章对您有帮助,您的star是对我最好的鼓励- 简要介绍:Promise允许我们通过链式调用的方式来解决"回调地狱"的问题,特别是在异步过程中,通过 ...
- es5如何实现promise_彻底理解Promise对象——用es5语法实现一个自己的Promise(上篇)...
众所周知javascript语言的一大特色就是异步,这既是它的优点,同时在某些情况下也带来了一些的问题.最大的问题之一,就是异步操作过多的时候,代码内会充斥着众多回调函数,乃至形成回调金字塔.为了解决 ...
- 实现同步请求_图解 Promise 实现原理(二)—— Promise 链式调用
摘要 很多同学在学习 Promise 时,知其然却不知其所以然,对其中的用法理解不了.本系列文章由浅入深逐步实现 Promise,并结合流程图.实例以及动画进行演示,达到深刻理解 Promise 用法 ...
- 60-300-024-使用-延迟数据-Flink中延时调用设计与实现
1.世界 2.概述 在电商商品购买过程中有这样一些场景:用户点击下单,此时订单处于待支付状态,如果在2小时之后还处于待支付状态那么就将这笔订单取消,置为取消状态:用户收货之后可以对商品进行评价,如果在 ...
- js定时器和延时调用的使用
javascript定时器使用 可以使用setInterval(回调函数,间隔时间)函数,定时调用一段程序 回调函数本质就是一个函数(有点废话),但它是JS帮我们调用的,所以叫回调函数. 间隔时长单位 ...
- JS中定时器和延时调用学习笔记
JS中定时器和延时调用 在JS中希望一个函数重复的执行,可以为该函数设置一个定时装置 方法: setInterval(); 该方法可以将一个函数,每隔一段时间被调用一次 有两个参数 第一个是回调函数, ...
最新文章
- 推荐一款超级好用的开源画图工具:用例图、架构图、时序图、类图、E-R图、甘特图
- OpenFire源码学习之二十五:消息回执与离线消息(下)
- 深入浅出理解神经网络召回模型的优势
- 如何通过http从linux下载文件,linux – 我可以通过http验证大量文件下载吗?
- 2021年四川省政府工作报告:促进5G、大数据、区块链等技术与传统产业融合发展
- 【php更换数据库为orcle】phpstudy+orcle
- Python核心编程(第三版)课后习题解答——第二章
- 海思hitool工具使用
- 关于.dll文件的注册,如何注册.dll文件
- 如何修改Android APP的图标和名字
- excel小技巧之--自定义序列
- php 数独计算器,问题描述:数独(Sudoku)是一款大众喜爱的数字逻辑游戏。玩家需要根据9X9盘面上的已知数字_题来了...
- 怎样实现在微信中直接下载APK
- ubuntu搭建vpn步骤
- android 多个aar合并,Android多模块构建合并aar解决方案
- 【芯片应用】DAC8554
- 2020年小红书直播报告
- 项目经理面对项目陷困境该这样采取措施
- 公众无线局域网体系结构和运营模式
- 安卓手机通过蓝牙与单片机通信
热门文章
- JAVA就业指导(转)
- python2.0_s12_day10_rabbitMQ使用介绍
- JAVA基础代码分享--学生成绩管理
- android 内部类的优化
- asp.net中jQuery $post用法
- InnoDB redo log格式-物理log
- 适用于WIFI Hacking的无线网卡推荐
- Microsoft Azure Express Route (专线直连)到云端数据中心(2)
- php-fpm定义成集群资源时报错解决方法
- 5.对象和面向对象3——类的定义