Promise 是es6提供的解决回调地狱的方案之一,本身是一个构造函数,它可以帮我们处理异步代码,会在处理成功的时候给一个成功的回调,失败的时候给一个失败的回调。
语法:new 一个promise对象,可以传入一个回调函数,回调函数接收两个参数,一个是成功的回调(一般写作resolve),一个是失败的回调(一般写作reject),在函数体里写要做的异步的事情,比如发一个请求
=》resolve 调用的时候执行then方法即调用里面的回调函数,catch 类比同上
=》promise 对象里有两个方法,then和catch(同步添加的),分别在promise对象帮忙做的异步的事情成功和失败的时候执行
=》then 方法 可接收一个回调 函数作为参数(可接形参,比如请求回来的结果res),在这个回调函数里做一些业务逻辑处理(比如对请求回来的结果做处理),只要在then方法中再return出一个新的promise对象就可以继续.then 进行链式调用,catch 类比同上
=》而什么时候用resolve 什么时候用reject 看自己的代码结构决定
应用场景:在一个promise 对象中处理发送一个二次封装过的ajax异步请求,第二次请求需要用到第一次请求返回的结果