2018-06-07

JavaScript Promise对象的理解

一 :Promise是异步编程的一种解决方案,可以把它理解为一个容器,Promise对象有三种状态1,Pending(进行中) 2Resolved(完成) 3Rejected(失败),状态只会从pending变为resolved或者变为rejected。当状态发生改变后就会一直保持这个状态(成功或者失败),并且不会再改变。

二:promise的基本用法:

ES6规定,Promise对象是一个构造函数,用来生成Promise实例

Promise构造函数接受一个函数作为参数,接收的这个函数拥有两个参数,同样这两个参数也是函数。分别是resolve和rejected。 resolve和rejected由JavaScript引擎提供,不需要你自己手动实现。这两个函数的意思就是:

resolved:是把promise对象的状态由进行中变为已成功,然后将异步操作成功的结果作为参数传递出去。

rejected:是吧promise对象的状态由进行中变为以失败,然后将异步操作失败返回的错误信息作为参数传递出去。

promise实例生成以后可以使用then方法来制定两种状态的回调函数:

then方法可以接受2个回调函数作为参数,第二个函数是可选的,不一定要提供。这两个函数都接受Promise对象传出的值作为参数。


上面代码中,Promise新建后立即执行,所以最先输出的是1,然后then方法指定的回调函数,将在当前脚本所有同步任务执行完才会执行,所以”2”最后输出。输出的顺序是 1------>3------->2.

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Promise 对象 Promise 的含义 Promise 是异步编程的一种解决方案,比传统的解决方案——回调函...
    neromous阅读 12,777评论 1 56
  • Promise对象是一种解决异步问题的方法,还有的解决方案是asyns 和 await (es7) 这么是目前的终...
    站在大神的肩膀上看世界阅读 5,016评论 0 6
  • 目录:Promise 的含义基本用法Promise.prototype.then()Promise.prototy...
    BluesCurry阅读 5,330评论 0 8
  • 00、前言Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。它由社区...
    夜幕小草阅读 6,401评论 0 12
  • 数据分析方面AARRR是被使用最多的模型,之前总听人说起,最近开始整体地学习,原来最初这是硅谷的一个投资人发明的工...
    Molly_0阅读 1,527评论 0 1