位置: 编程技术 - 正文

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

  • 税控盘服务费全额抵扣分录
  • 捐赠劳务支出可在企业所得税前扣除吗
  • 注册资本印花税按年申报还是按次申报
  • 企业实缴不到位怎么办
  • 增值税专用发票和普通发票的区别
  • 购买电脑的折旧怎么计算
  • 机械设备关税税率多少
  • 什么情况可以减免税收
  • 普通发票验旧后当月能作废吗
  • 生产过程中产品的质量保证体系
  • 员工买了多项东西怎么说
  • 股权转让个人交的印花税可以入账吗
  • 实收资本增加印花税缴纳时间
  • 个人所得税工资薪金税率表
  • 公司汽车保养费用怎么做账
  • 2019年基金市场
  • 事业单位发放的工作经费计入哪个科目
  • 企业内部领用产品会计处理
  • 新版edge浏览器兼容性视图怎么设置
  • 怎么用苹果电脑查找苹果手机
  • 生产车间机器设备日常维修
  • 从租计征房产税怎么申报
  • 税务登记证遗失补办
  • php mb_convert_encoding
  • 会计中记账凭证复核是谁负责
  • 房产契税什么时间缴纳
  • web前端有哪些
  • fbembed.dll
  • avgnt.exe
  • 结转完工产品成本计算公式
  • web渗透实战
  • 应缴纳的房产税计入什么科目
  • 跨年费用计入未分配利润
  • php冒泡法排序
  • php t_string
  • tokenall
  • vue监听页面加载完毕
  • 二挡起步教程
  • 合并的命令
  • 中国男人百度百科
  • 拍卖抵押车 卖不出去怎么办
  • 不同情况不同处理的句子
  • 结转成本涉及的科目
  • 油票上没有公司名称可以报么
  • 固定资产折旧范围口诀
  • 政府补助会计处理方法
  • 小微企业所得税税收优惠政策2023年
  • 其他应付款的项目
  • 计提所得税后再结转本年利润吗
  • 劳动仲裁经济补偿金写多了
  • 出口退的税交附加税吗
  • 我国会计准则规定企业的会计核算基础是
  • 非广告公司可以开广告费发票吗?
  • 专项费用会计分录
  • 融资租赁固定资产利息的账务处理实例
  • 什么情况下交劳务税
  • 公司日常费用支出表怎么做
  • 消防劳保
  • 餐饮打包盒 标准
  • 股东股权转让会计分录
  • 可转换债券是什么资本
  • Python3.6-MySql中插入文件路径,丢失反斜杠的解决方法
  • Vista技巧:何在Vista上运行不兼容的旧版本软件
  • 打开linux系统
  • winxp破解登录密码
  • windows mobile10
  • Win10 Build 14267截图欣赏:贴心功能大展示
  • js实现日历效果
  • grid sheet
  • 网页设计div css布局
  • div显示边框线
  • 网管系统怎么用
  • 关于使用RequestWindowFeature为啥一定要在setContentView之前调用
  • 安卓activity和fragment的区别
  • 交通运输业的税率9%和13%
  • 个人纳税记录为多少
  • 通用机油防伪查询
  • 电子税务局如何解绑办税人员
  • 十大经济
  • 开票有什么好处吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设