Promise是ES6中用来结局回调地狱的问题的但是并不能帮我们减少代码量
-
-
在Promise上有两个函数分别是resolve(成功之后的回调函数)和reject(失败之后的回调函数)
-
在Promise构造函数的prototype属性上,有一个.then()方法,也就是只要是Promise构造函数创建的实例,都可以访问到.then()方法
-
如果Promise表示一个异步操作,每当我们new一个Promise的实例,这个实例就表示一个具体的异步操作
-
既然Promise创建的实例是一个异步操作那么这个异步操作的结果只能有两种状态
-
状态一:异步执行成功 需要在内部调用,成功的回调函数resolve 把结果返回给调用者
-
状态二:异步执行失败了 需要在内部调用,成功的回调函数reject把结果返回给调用者
-
由于Promise的实例是一个异步操作,所以拿到操作结果后,无法使用return把操作结果返回给调用者,这个时候只能使用回调函数的形式,来把成功或者失败的结果返回给调用者
-
-
我们可以在new出来的Promise实例上,调用.then()方法【预先】为这个Promise一部操作,指定成功(resolve)和失败(reject)回调函数
实现原理:(以读取文件为例)