1. 回调地狱
假如业务逻辑如下图,那么我们的事件函数很可能需要在回调函数中套好几个函数,
形成如下图的“回调地狱”:
Promise 构造函数是解决“回调地狱”的一种方法。
2. Promise((resolve,reject)=>{})
Promise 构造函数只有一个参数,是一个函数,这个函数在构造之后会直接被异步运行,所以我们称之为起始函数。起始函数包含两个参数 resolve 和 reject。
Promise 类有 .then() .catch() 和 .finally() 三个方法,这三个方法的参数都是一个函数,
.then() 可以将参数中的函数添加到当前 Promise 的正常执行序列,
.catch() 则是设定 Promise 的异常处理序列,
.finally() 是在 Promise 执行的最后一定会执行的序列。
.then() 传入的函数会按顺序依次执行,有任何异常都会直接跳到 catch 序列。
下面是小程序调用接口使用Promise 构造函数的一个例子。