位置: 编程技术 - 正文

简单实现异步编程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元以内的无票报销是累计还是一次
  • 打印复印费的明细怎么开?
  • 质保金扣款要进项税转出吗
  • 免税产品的销项税
  • 运输公司赔偿计入什么科目
  • 销售自产自销的产品要交税吗?
  • 污泥处置费用怎么开票
  • 预收账款开票可以抵扣吗
  • 一般纳税人认定标准500万是什么时候开始执行
  • 资产处置损失计算方法
  • 长期股权投资的初始计量
  • 税务申报利润表本期金额
  • 跨年应收账款账务错误怎么调整
  • 电脑找不到休眠设置了
  • 会计准则和会计法的关系
  • 项目投资净现值计算公式
  • 公司治理的基本内涵
  • 快捷方式都变成pdf
  • php数组函数输出《咏雪》里有多少"片"字
  • Win11 Build 22000.160(KB5005189)预览版发布,更新了哪些内容
  • php面向对象面试题
  • uni-app怎么样
  • 福利企业的税收怎么算
  • 建筑工程甲级什么意思
  • 在建工程账务核算方法
  • 非货币性资产投资个人所得税
  • 芒通,法国 (© Flavio Foglietta/Getty Images)
  • 增值税加计扣除最新政策
  • 自动驾驶的时候可以睡觉吗
  • 日落之前是什么时辰
  • 农产品小规模纳税人
  • 深度学习分析NASA电池数据(1 数据读取)
  • apache php mysql开发环境安装教程
  • 还没报税就自动清卡了怎么办
  • 报销货物运输费需要什么凭证
  • 会计凭证分为几个部分包括哪些内
  • 差旅费跨年报销违反什么规定
  • 工程材料费发票没拿到是否能预提费用?
  • 使用银行汇票的结算方式
  • 每月工资不一样怎么算误工费呢
  • 按信用风险特征组合
  • 管理费用主要核算哪些内容
  • 房地产企业拆迁补偿费入账要求
  • 银行承兑汇票怎么开
  • 长期挂账其他应付款处理
  • 应收账款应付账款借贷方都表示什么
  • 多缴纳了个税税率怎么办
  • 一次性收取一年的租金如何做分录
  • 服务咨询类合同
  • 解缴税费
  • 普通发票作废如何操作
  • 年度汇算清缴要补税怎么办
  • 套现给现金还是转账好
  • 代扣代缴个人所得税分录
  • 借款利息怎么记账
  • win10的安装目录在哪
  • linux服务端
  • mac 休眠
  • linux find命令详解xargs
  • oracle12c怎么卸载
  • javascriptwhile
  • 使用jquery
  • bootstrap入门
  • python多线程作用
  • 基于网络创新形成的大数据的最突出特征是什么?( )
  • javascript的数据类型有哪些?
  • 一款简单的网络版多媒体课件制作软件是什么
  • activity的跳转
  • Python字符串切片例子
  • 国家税务局涉税信息公开
  • 国税网上办税大厅在哪
  • 潍坊购房政策2020
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设