位置: 编程技术 - 正文

简单实现异步编程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图标(代码少)(网页上面的收藏夹显示)

  • 资本公积转增资本会引起什么变化
  • 税前扣除项目包括
  • 印花税包括几个税种
  • 增值税技术维护费每年都可以抵减吗?
  • 文化事业建设费怎么申报
  • 未达到起征点的增值税会计处理
  • 销售方记账凭证怎么做分录
  • 公益性捐赠的税收优惠政策
  • 股权转让有哪些方式
  • 发票过期了还能抵扣吗
  • 网上支付的三种类型
  • 企业盈利后又亏损怎么算
  • 同一个行政区
  • 增值税扣税凭证包括增值税专用发票
  • 科研经费税收优惠
  • 固定健身器械使用方法
  • 个人营业执照怎么注销网上申请流程
  • 公司发票限额按什么计算
  • 长期股权投资账面价值和公允价值不一致
  • 公司帮员工买的保险
  • 开专票需要哪些东西
  • 购买债券发生的交易费用计入哪个科目
  • 其他应付转到其他应收
  • 个体户营业收入超过500万
  • 最新制作视频的软件
  • 在XP中,为什么"网络连接"图标消失?
  • 超市预售卡怎么记账
  • linux怎么更改账户名
  • php类型判断
  • Win10 Build 19043.1266(21H1)更新已知问题汇总
  • 汇算清缴后补缴企业所得税账务处理
  • 耕地使用税的征收标准
  • php 生成缩略图
  • yii2-admin
  • phpinclude
  • vue 播放视频流
  • 创建rpm包
  • 我国营改增后,一般纳税人适用的增值税基本税率
  • 不动产物权归属和内容的根据是什么?
  • 母公司的资质怎样才能转给子公司
  • 浏览器任意链接在哪里
  • 无形资产商标设计图片
  • php指定域名访问
  • 中小企业发展专项资金亮点 免申即享
  • sql server概述
  • 一般纳税人增值税怎么算
  • 房租收入如何缴纳增值税
  • 材料的采购成本包括
  • 商品周转天数计算方法
  • 零余额账户银行回单
  • 什么经营范围可以开推广服务费
  • 印花税可以去地方申报吗
  • 期间费用包括哪三种
  • 勾选发票必须当月认证吗
  • 商业企业销售摩托车需不需要征收消费税
  • 什么是固定资产清理
  • mysql数据库遇到的故障及分析
  • xp系统好怪哦
  • ubuntu 14.04安装
  • linux 桌面系统
  • Linux操作系统之rm命令详解
  • win10再出变故 微软撤下Windows Update中11月份更新
  • Windows正在启动卡死
  • linux安装dns软件包
  • debian怎么用
  • dpd参数
  • el-select tree
  • js中两个等号
  • dos 到指定目录
  • vue移动端app开发流程
  • Android开发工具
  • dom使用
  • 发票系统怎么设置打印
  • 上年汇算清缴调减的职工薪酬今年需要调增吗
  • 北京供暖 2020
  • 杭州国税咨询电话
  • 电子缴款凭证可以用于报销吗
  • 快手怎样代卖
  • 本季度可以弥补上季度亏损吗
  • 消费税记不记入成本
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设