Promise 是一种异步编程的解决方案。用于解决回调地狱的问题。
可以支持多并发的请求,获取并发请求中的数据。
一个 Promise 对象有三个状态,并且状态一旦改变,便不能再被更改为其他状态。
- pending,初始状态(等待状态)。
- resolved (也可以叫fulfilled),成功状态。
- rejected,失败状态。
当处于pending状态时,无法得知目前进展阶段。
promise可以解决异步问题,但promise不是异步的。
new Promise(请求1)
.then(请求2(请求结果1))
.then(请求3(请求结果2))
.then(请求4(请求结果3))
.then(请求5(请求结果4))
.catch(处理异常(异常信息))
回调地狱带来的负面作用有以下几点:
- 代码臃肿。
- 可读性差。
- 耦合度过高,可维护性差。
- 代码复用性差。
- 容易滋生 bug。
- 只能在回调里处理异常。