web前端面试题对答篇:谈谈你对Promise的理解

Brose

关注

阅读 51

2021-09-28

回答这个问题时,个人不建议单纯的从Promise的细节知识点答起,因为这个问题的本质是拥有一定宏观性的,如果仅仅回复一些知识点恐怕是满足不了面试官胃口的。

当然,如果这个问题回答不到点上,那么后续面试官极有可能会抛出一些相关知识难点来对你进行打压。倘若知识点也回答不出来,那么只能出门右拐了……

所以建议你结合自身项目工作经验可以考虑从以下几个点去回答即可:

1、Promise 是一个构造函数,我们可以通过该构造函数来生成Promise的实例。

2、Promise 即承诺,后续必要兑现,一旦兑现则不可更改!其状态有三:pending(等待)、resolved(成功)、rejected(失败)。

3、Promise 是对回调函数的一种封装,是对异步编程的一种改进(传统解决异步编程的方式是通过回调函数,而回调嵌套过多会导致回调地狱(callbackhell)),我们可以通过Promise将自己的程序以同步的方式表达出来,从而可以解决代码臃肿及可读性差的问题。

4、Promise 的实例可以看做是一个状态展示器,我们可以将拥有状态及改变状态的业务通过Promise来实现,然后再结合async function进一步提升程序的可读性及易维护性。

5、与前端相关的很多技术体系库均采用了Promise对象,比如Axios、antd等等,所以了解、熟练并合理的使用它是一名合格前端必备的技能。

6、在实际项目的开发中经常会遇到继某一个函数执行结果之后,再进行入后续操作的场景,通过Promise就是一种非常好的解决方案。比如我们可以通过Promise对ajax进行封装用于实现业务逻辑与数据的分离。

精彩评论(0)

0 0 举报