位置: 编程技术 - 正文

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

  • 增值税明细账用三栏式还是多栏式
  • 税法规定固定资产最低价格
  • 交通运输印花税怎么申报
  • 房地产企业递延所得税资产计算方法
  • 投资收益属于什么账户
  • 应交增值税销项税额借贷方向
  • 清算期间作为纳税年度
  • 小企业会计准则和一般企业会计准则的区别
  • 证券公司清算交收
  • 合伙做生意账目
  • 公益性捐赠税前扣除资格认定
  • 企业购进货物发生的下列相关税费中,应计入货物
  • 签了合同后又要收额外费用
  • 个人所得税生产经营所得税率表2023
  • 酒类消费税征收环节归纳
  • 接受捐赠的固定资产进项税额可以抵扣吗
  • 增值税进项税额转出的账务处理
  • 营改增对运输业的影响
  • 小规模纳税人1%税收优惠
  • 企业支付宝税务局能查吗怎么查
  • 土地作价入股是否视为土地转让
  • 购车发票怎么做分录
  • 按简易办法征收增值税
  • 企业收到财政专项资金账务处理
  • linux系统配置ip地址命令
  • 车船税是什么险种
  • 对外支付需要缴纳增值税吗
  • 以物易物双方做什么处理
  • 微信公众平号平台
  • 企业研发费用的优惠政策
  • 公路客运车辆
  • 稿酬所得的个税怎么计算
  • php中使用js
  • 企业支付宝账单明细怎么查
  • yii2高级应用之自定义组件实现全局使用图片上传功能的方法
  • 股东借款会计处理
  • phpcms v9官网
  • 资产减值损失为什么要调增
  • 租赁店面没有发票违法吗
  • 年金现值系数和年金终值系数的公式
  • 增值税专用发票怎么开
  • 无形资产减值准备是什么科目
  • 公司收到注册资本金需要做哪些呢
  • 固定资产清理费用对应科目
  • 来料加工账务处理流程
  • 服务行业人工费一般控制在多少合适
  • 行政单位与事业单位净资产的比较
  • 中小企业会计科目
  • 材料采购合同印花税税率
  • 原材料属于固定资本还是流动资本
  • 勘察设计费取费
  • 所得税汇算清缴需要调增的项目
  • 永续债的清偿顺序是什么
  • 交所得税的分录
  • 本年利润的会计科目代码
  • 增值税年末必须要交吗
  • 销售酒怎么结转销售成本
  • 出口货物开票怎么处理
  • 总分类账的依据
  • innodb_sys_tables
  • sql server数据存放位置
  • mysql sql语句性能调优
  • mysql免安装版本
  • 回顾30年的水文模型参数率定研究
  • ubuntu怎么安装程序
  • 2007皖价服
  • win7 系统没有声音
  • cortana小娜怎么用
  • linux中统计字符命令
  • win7系统电脑蓝牙怎么开
  • cocos creatorapi
  • unity连接数据库能做什么
  • unityshader
  • django框架详解
  • 打印缴纳社保电子缴税凭证
  • 扬州地方税务局在哪
  • 家庭农场有什么用途
  • 古代税收和现代税收
  • 朝阳银行作息时间
  • 公司注册资本印花税的税率是多少
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设