前端面试题之 对Promise的理解

一、什么是Promise?我们用Promise来解决什么问题?

我们都知道,Promise是承诺的意思,承诺他过一段时间会给你一个结果。
Promise是一种解决异步编程的方案,相比回调函数和事件更合理和更强大。
从语法上讲,Promise是一个对象,从它可以获取异步操作的信息

二、Promise有三种状态

pending 初始状态也叫等待状态
fulfiled 成功状态
rejected 失败状态
状态一旦改变,就不会再变。创造Promise实例后,他会立即执行。

三、Promise的两个特点

  1. Promise对象的状态不受外界影响
  2. Promise的状态一旦改变,就不会再变,任何时候都可以得到这个结果,状态不可以逆

四、Promise的三个缺点

  1. 无法取消Promise,一旦新建它就会立即执行,无法中途取消
  2. 如果不设置回调函数,Promise内部抛出的错误,不会反应到外部
  3. 当处于pending(等待)状态时,无法得知目前进展到哪一个阶段,是刚开始还是即将完成

五、Promise是用来解决两个问题的

  1. 回调地狱,代码难以维护,常常第一个的函数的输出是第二个函数的输出这种现象
  2. Promise可以支持多并发的请求,获取并发请求中的数据
    这个Promise可以解决异步的问题,本身不能说Promise是异步的

你可能感兴趣的