位置: 编程技术 - 正文

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

  • 印花税征税对象包括哪些
  • 外贸企业出口退税申报流程操作
  • 职工福利按工资发放吗
  • 个体户超过定额怎么纳税申报
  • 增值税税率调整为9%
  • 税务局财务报表报送期限
  • 汇算清缴a107020表
  • 印花税什么情况可以退
  • 应收账款占用资金的应计利息公式
  • 融资租赁与按揭贷款区别
  • 实收资本转出怎么做账
  • 应收留抵税额退税款科目怎么添加进项
  • 母公司代子公司付款合法吗
  • 村集体经济组织法
  • 诉讼财产保全保险费能否主张
  • 审工资的流程
  • 税目与应纳税额的关系
  • 增值税普通发票申报
  • 公司账上的存货是怎么来的
  • 企业生产总值怎么算出来的
  • 房产代理公司收客户钱违法
  • 定期存款利息收入现金流
  • 主营业务成本怎么算出来的
  • 收到赞助费要交税吗
  • 增值税逾期申报流程
  • 销售旧房增值税销售额怎么算
  • 以前年度的库存商品出现负数今年如何入账
  • win10如何删除windows账户
  • 招待费报销制度规定
  • 支付设备维修费用计入什么科目
  • 分公司特征表述正确的是
  • win10关闭自动更新方法永久
  • 非累积带薪缺勤什么时候确认
  • shadowbar.exe - shadowbar是什么进程 有何作用
  • 违约罚款的会计分录
  • 出口免税和退税交附加税
  • 年底社保怎么交
  • 存货核算有哪些内容
  • 位于阿曼和迪拜的大学
  • 残保金解决方案
  • 公司间代收款需要开票吗
  • 股东以房产投资公司
  • 去年的进项发票可以抵今年的吗
  • 织梦如何使用
  • 职工教育经费和职工福利费扣除比例
  • 会计科目备抵科目都有哪些
  • 委托加工物资验收时发生的成本怎么处理
  • 主营业务成本的摘要怎么写
  • 小规模纳税人认定标准500万
  • 工会经费怎样使用
  • 善意取得虚开增值税专用发票处理
  • 借款利息税前扣除应当注意的三个问题
  • 销售赠品的会计分录
  • 合作建房项目
  • 委托出口由谁办理退税
  • 应交税费附加税明细科目
  • 工会经费结余可以结转下年吗
  • 今年缴纳上年的税收滞纳金
  • 红字发票最多几个月
  • 收到以前年度税费返还的会计分录
  • 收到保险理赔款计入什么科目
  • 供货商做产品配送怎么做
  • win8更新到win8.1
  • linux怎样浏览文件中的内容
  • win7系统开机蓝屏0x0000007b
  • 右下角小喇叭调不了声音
  • ssonsvr.exe - ssonsvr是什么进程
  • windows 7的用户类型
  • window10 不能上网
  • 斗西游破解版
  • js实现隔行变色
  • node.js开发微信小程序
  • python3gui
  • linux命令行怎么用
  • js中的array数组有什么缺点
  • 前端实现图片编辑
  • easyui 表单提交
  • 怎样看业务序号
  • 运输专票怎么开发票
  • 北京定额发票查验
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设