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.