我敢说这是你见过最全面最简洁对promise的理解

52 阅读1分钟

promise是es6出来的新语法是一个函数

promise一般当做构造函数使用,new一个实例,

内部有三种状态: 进行中pending, fulfilled成功 和 rejected失败 成功会触发then 失败会触发catch 还有一个finally永远都会触发

promise对象的改变,只要两种可能:从pending变为fulfilled,此时执行resolve(0,从pending 变为rejected,此时执行reject()

promise的原理是: 利用then方法将异步操作的结果按照顺序执行,不是控制异步代码的执行顺序(无法控制)为了解决函数嵌套回调地狱问题

优化方案:是async和await(解决回调地狱又优化代码,async函数内部的异常需要通过try,catch来捕获)