什么是Promise
1.假如我们需要封装一个网络请求函数,需要三个参数
function getInfo(url,sucessBack,rejectBack){ }
每个人的sucessBack和rejectBack的实现方式都是不同的,我们可以调佣一些库,但是我们库是一个黑盒子,需要有学习成本。所以Promise应运而生。
Promise是一个类,可以翻译成承诺、许诺、期约;
当我们需要给予调用者一个承诺:待会儿我会给你回调数据时,就可以创建一个Promise的对象;
在通过new创建Promise对象时,我们需要传入一个回调函数,我们称之为executor 这个回调函数会被立即执行,并且给传入另外两个回调函数resolve、reject;
当我们调用resolve回调函数时,会执行Promise对象的then方法传入的回调函数; 当我们调用reject回调函数时,会执行Promise对象的catch方法传入的回调函数;
promise的状态一旦确定,不可以更改。
promise中还可以包含promise 那么当前的状态就由包含的promise做决定。 或者是包含thenAble方法,resolve一个对象,实现了then方法。那么交由then方法决定。 还可以有返回值 return,return 默认是返回一个promise 并且默认为resolve。
then catch finall
promise Api