Promise是异步编程的一种解决方法,相比起传统的回调函数以及事件,有了更好的可读性
Promise有3种状态,分别是pending
、resolved
(准确来说应该叫fulfilled)、rejected
,状态的转换不可逆转,也就是说,一旦状态从pending转变为其他两个状态中的任意一个,那么状态就是固定不变的。
有了promise对象,我们可以通过then
的操作链来传入回调,在一个操作链中,前面的then回调执行完毕之后会将执行结果传递到下一个then,我们就可以将异步编程以同步编程的编程习惯表达(generator和async在这方面可以更彻底)。
promise一旦创建后立即执行,无法中途取消,并且内部抛出的错误无法传递到外部,因此无法在外部捕获