位置: 编程技术 - 正文

简单实现异步编程promise模式(简单实现异步编码的方法)

编辑:rootadmin

推荐整理分享简单实现异步编程promise模式(简单实现异步编码的方法),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:异步怎么实现,异步编程是什么意思,异步编程解决方案,简单实现异步编程的方法,异步编程的四种方法,如何实现异步编程,简单实现异步编码的方法,简单实现异步编程的方法,内容如对您有帮助,希望把文章链接给更多的朋友!

异步编程javascript异步编程, web2.0时代比较热门的编程方式,我们平时码的时候也或多或少用到,最典型的就是异步ajax,发送异步请求,绑定回调函数,请求响应之后调用指定的回调函数,没有阻塞其他代码的执行。还有像setTimeout方法同样也是异步执行回调的方法。

如果对异步编程还不太熟悉的话,直接戳 阮一峰大牛的教程 ,这篇文章介绍了四种异步编程的方式:

回调函数 事件监听 发布/订阅 promise模式

这几种方式的可维护性逐级递增,理解难度也逐级递增。这篇总结也是针对promise模式的。

promise模式那么多中异步编程的方式,为什么选择promise, 因为前面几种方式不够灵活,用起来不够痛快,不优雅。为了降低异步编程的复杂性,所以promise。

promise的核心是有一个promise对象,这个对象有一个重要的then()方法, 它用于指定回调函数,如:

promise模式在任何时刻都有三种状态:已完成(resolved),未完成(unfulfilled),那么then()方法就是为状态变化指定不同的回调函数,并总是返回一个promise对象,方便链式调用。

那promise模式下,返回的数据如何在各个回调函数之间传播呢,通过resolve方法,你可以将一个函数的返回值作为参数传递给另一个函数,并且将另一个函数的返回值作为参数再传递给下一个函数……像一条“链”一样无限的这么做下去。

代码实现通过创建一个Promise构造函数来实现promise模式:

简单实现异步编程promise模式(简单实现异步编码的方法)

代码分析我们可看到一个简单的promise对象的构造函数的结构:

Notice: Undefined index: CMSdown in /data/webroot/gcms/lib/Api/Open/Article.php on line img////_d3feafedfde.png" alt="查看图片" />

callbacks: 用于管理回调函数 resolve: 请求成功时执行的方法 reject:请求失败时执行的方法 complete: 执行回调 then:绑定回调函数

测试:

结果:

一秒之后输出:

Notice: Undefined index: CMSdown in /data/webroot/gcms/lib/Api/Open/Article.php on line img////_d3feb.png" alt="查看图片" />

分析:

这个函数通过setTimeout方法,异步传递一个数据1,并返回一个promise对象(必须)。

callback1和callback2都是要通过then方法注册的回调函数,其中callback1通过resolve方法把数据往下传递。

delay1()方法执行完,因为返回了一个promise对象,所以可以再调用then()方法为delay1()的setTimeout异步执行操作指定回调函数, 又因为then()方法也返回的是promise对象,所以还可以再调用then方法

一秒之后,当其他代码执行完成,开始执行异步代码promise.resolve('数据1');,这里调用promise的resolve()方法,指定了一个成功状态,并把数据1作为参数。

这其中比较难理解的就是第五,六步。

标签: 简单实现异步编码的方法

本文链接地址:https://www.jiuchutong.com/biancheng/377592.html 转载请保留说明!

上一篇:javascript中递归函数用法注意点(js中递归是什么意思)

下一篇:网页收藏夹显示ICO图标(代码少)(网页上面的收藏夹显示)

  • 金税盘年费能全额抵扣吗
  • 税务行政诉讼名词解释
  • 以转账方式收到货款会计分录
  • 增值税专票怎么抵税
  • 待认证进项税额认证以后怎么做分录
  • 滞纳金海关
  • 车辆购置税完税证明网上打印
  • 现金折扣为什么计入主营业务收入
  • 房地产销售土地增值税纳税人减免申请核准表
  • 应收账款管理制度设计毕业设计
  • 税后利润再投资
  • 收到应收的货款的会计分录
  • 外派人员的一次工作总结
  • 确认的投资收益
  • 专票开户行信息少股份有限公司有影响吗?
  • 自产自销产品如何入库存
  • 2016的发票2017年还能用吗?
  • 电商平台名称怎么注册
  • 减少其他应付款冲费用做以前年度损益调整如何做分录
  • 农产品收购抵扣税额可以申请留抵退税
  • 个人银行卡流水达到多少要交税
  • 投资性房地产的后续计量从成本模式转为公允价值模式的
  • 卖护肤品赚钱吗
  • 该系统的软件
  • 企业预收账款缴哪些税
  • php怎么发布
  • php socket_create
  • framework启动
  • 劳动仲裁的调解款要扣税吗
  • vue中v-model
  • 图像处理入门
  • 老老实实的人
  • php 短信验证码
  • 处置车辆收入缴税规定
  • 节假日加班工资是几倍
  • 社保费用可以提前从工资扣吗
  • 出口企业的出口比例怎么算
  • 税前扣除是什么时候
  • 管理费用抵消分录
  • 工会经费的会计分录2022
  • 固定资产融资租赁是什么意思
  • ieee compel 2021
  • 产品成本计算的分类法适用于( )
  • sql中的row_number
  • 软件退税款会计如何处理
  • 募捐建议
  • 偿债基金专户
  • 公司购买汽车怎么做账记账凭证
  • 固定资产成本包括什么
  • 所附原始凭证的作用是
  • Mac OS10.11下mysql5.7.12 安装配置方法图文教程
  • windows sfc命令
  • win7系统卸载360
  • kb4012212安装失败
  • win10启动很慢怎么办
  • centos7 lvs
  • win8 桌面图标
  • sentstrt.exe - sentstrt进程是什么文件 有什么用
  • windows7开机提示盗版
  • win7系统无法开机解决方法
  • I810 Graphics LINUX Driver的安装
  • Win10系统中怎么将文件夹进行压缩
  • cocos2dx4.0教程
  • 遮罩层在上还是在下
  • Vuforia 4.0 beta——Object Recognition (二)
  • linux守护进程管理
  • javascript cookies
  • bat脚本%1
  • shell脚本调用脚本
  • JavaScript中的变量名不区分大小写
  • javascript.
  • JavaScript ParseFloat()方法
  • Python 常用代码库
  • 安徽省电子发票开具流程
  • 计提税金的公式
  • 工商与税务合并了吗
  • 分红太多
  • 社保卡手机缴费怎么交不了
  • 主要领导负责人
  • 乌鲁木齐交通服务电话
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设