简单实现异步编程promise模式_基础知识
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了简单实现异步编程promise模式_基础知识,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3495字,纯文字阅读大概需要5分钟。
内容图文
![简单实现异步编程promise模式_基础知识](/upload/InfoBanner/zyjiaocheng/327/f68ded6addba4b22bd59fcea64cb0949.jpg)
javascript异步编程, web2.0时代比较热门的编程方式,我们平时码的时候也或多或少用到,最典型的就是异步ajax,发送异步请求,绑定回调函数,请求响应之后调用指定的回调函数,没有阻塞其他代码的执行。还有像setTimeout方法同样也是异步执行回调的方法。
如果对异步编程还不太熟悉的话,直接戳 阮一峰大牛的教程 ,这篇文章介绍了四种异步编程的方式:
- 回调函数
- 事件监听
- 发布/订阅
- promise模式
这几种方式的可维护性逐级递增,理解难度也逐级递增。这篇总结也是针对promise模式的。
promise模式
那么多中异步编程的方式,为什么选择promise, 因为前面几种方式不够灵活,用起来不够痛快,不优雅。为了降低异步编程的复杂性,所以promise。
promise的核心是有一个promise对象,这个对象有一个重要的then()方法, 它用于指定回调函数,如:
promise模式在任何时刻都有三种状态:已完成(resolved),未完成(unfulfilled),那么then()方法就是为状态变化指定不同的回调函数,并总是返回一个promise对象,方便链式调用。
那promise模式下,返回的数据如何在各个回调函数之间传播呢,通过resolve方法,你可以将一个函数的返回值作为参数传递给另一个函数,并且将另一个函数的返回值作为参数再传递给下一个函数……像一条“链”一样无限的这么做下去。
代码实现
通过创建一个Promise构造函数来实现promise模式:
代码分析
我们可看到一个简单的promise对象的构造函数的结构:
- callbacks: 用于管理回调函数
- resolve: 请求成功时执行的方法
- reject:请求失败时执行的方法
- complete: 执行回调
- then:绑定回调函数
测试:
结果:
一秒之后输出:
分析:
这个函数通过setTimeout方法,异步传递一个数据1,并返回一个promise对象(必须)。
callback1和callback2都是要通过then方法注册的回调函数,其中callback1通过resolve方法把数据往下传递。
delay1()方法执行完,因为返回了一个promise对象,所以可以再调用then()方法为delay1()的setTimeout异步执行操作指定回调函数, 又因为then()方法也返回的是promise对象,所以还可以再调用then方法
一秒之后,当其他代码执行完成,开始执行异步代码promise.resolve('数据1');,这里调用promise的resolve()方法,指定了一个成功状态,并把数据1作为参数。
这其中比较难理解的就是第五,六步。
以上就是本文的全部内容,希望对大家的学习有所帮助。
内容总结
以上是互联网集市为您收集整理的简单实现异步编程promise模式_基础知识全部内容,希望文章能够帮你解决简单实现异步编程promise模式_基础知识所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。