前言
之前聊事件循环(Event Loop)机制时有说到,js是一门单线程语言,所以js代码总是同步、按顺序执行,为了解决这一麻烦,js发明之初便有了异步的概念,通过回调函数(callback)实现。
设想一下:有3个接口,每一个接口的调用参数都依赖上一个接口的返回值,拿jquery的ajax举例,我们很可能会写出以下代码:
实际开发中我们大概率遇到更多层回调的场景,上述代码会陷入多层级的回调函数中,当其中的业务处理代码(do something)也比较复杂时,可读性和可维护性都非常糟糕(加上不写注释)
回调地狱就此产生
如何解决回调地狱
为了维持js代码的优雅,es6新增了Promise对象,并被广泛使用
Promise是什么
promise是es6新增的一个对象
用来传递异步操作的消息,提供了统一的API以便进一步处理异步事件未来会发生的事情
Promise基本语法