MDN上面对promise的解释:
Promise 对象是一个代理对象(代理一个值),被代理的值在Promise对象创建时可能是未知的。它允许你为异步操作的成功和失败分别绑定相应的处理方法(handlers)。 这让异步方法可以像同步方法那样返回值,但并不是立即返回最终执行结果,而是一个能代表未来出现的结果的promise对象
我的理解就是:Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理且更强大。
基本写法
let pro = new Promise((res, rej) => {
res(1);
rej(2);
});
pro.then(
data => console.log(data),
err => console.log(err)
);
在ES6中,将一件可以发生异步操作的事件,分为两个阶段unsettled
未决阶段和settled
已决阶段
在上述代码中,通过new 生成promise对象的时候的promise函数内为未决阶段,在通过then方法处理异步操作的时候为已决阶段。
ES6也将程序分为三种状态pendding resolved rejected
pendding状态处于unsettled
未决阶段,resolved rejected状态都处于settled
已决阶段。
上述代码中通过new 生成promise对象的时候的promise函数内为padding状态,函数内res把程序推向resolved状态