位置: 编程技术 - 正文

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

  • 增值税金税盘开票的结论
  • 民非 企业所得税
  • 汽车修理公司兼职好做吗
  • 税前利润税率
  • 来料加工账务处理举例
  • 苗圃公司会计分录
  • 货物退回是什么意思
  • 物业费按年交有优惠吗
  • 母子公司固定资产交易
  • 个税按照计提申报怎么调整
  • 增值税都有哪些科目
  • 公司转投资的额度
  • 法人存入公户实收资本可以还其他应付款吗
  • 企业发生的现金折扣应计入
  • 外购的自用小轿车
  • 保险合同有啥用
  • 应税销售额含不含税
  • 无偿赠与钱要交税吗
  • 国家动漫企业认定优惠政策
  • 资产负债表在途物资属于存货吗
  • 单位转让专利技巧和方法
  • 汇总记账凭证账务处理程序的优点包括
  • 我的初级备考经历怎么写
  • 出售已使用五年的住房有税收优惠吗?
  • 出口退税免退税办法
  • 城建税有哪些征税项目
  • 土地增值税的税率和速算扣除数
  • 财务费用的冲减什么意思
  • 年初未分配利润计算公式
  • 股东投资追加款怎么做账
  • 新会计规定工会会计制度
  • php的数组函数
  • Win11如何关闭屏保上的广告
  • media是什么文件
  • msoicons.exe是什么文件
  • 蒙特雷景点
  • 边角料是否计入生产成本
  • html怎么设置隐藏元素
  • swatch of
  • 小规模纳税人利润超过300万
  • python中lambda用法
  • 旅游门票费用可以用来报销吗?
  • 小微企业的税收优惠政策2023
  • 租金收入怎么做分录
  • windows7的安装方式
  • 利润分配未分配利润是净利润吗
  • 用现金支付的款项
  • 企业所得税季报是填累计数吗
  • 会计人要求
  • 收到保险理赔款计入什么科目
  • 职工福利费如何计算
  • 主营业务税金及附加借贷方向
  • 高新企业研发费用占比
  • 会计档案销毁方案怎么写
  • 车子报废车子怎么处理
  • win7自带防护软件
  • 2021年win10累积更新
  • xp系统插u盘没反应怎么解决
  • Mac OS X Mavericks的Finder打开不同标签的操作步骤
  • centos sudoers
  • 虚拟机ubuntu怎么用
  • 手机用xp系统
  • win8应用商店在哪
  • linux远程桌面连接工具
  • win8电脑设置
  • preorder遍历
  • javascript几种数据类型
  • 简单的jquery插件实例
  • 下载一个网页的所有图片
  • linux进程切换 宋宝华
  • ANDROID手机客户端软件开发工程师
  • javascript怎么弄
  • JavaScript数据类型
  • 同源策略详解
  • js中倒计时器怎么实现
  • Windows上使用PD虚拟机
  • 国税网上办税大厅在哪
  • 国家税务总局l
  • 无偿转让股权协议书范本
  • 注册税务师条件要求
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设