js异步编程方案都有什么?
-
回调函数回调函数的可读性和维护性都太差,如果嵌套的层级太多会形成回调地狱,而且,每一层的回调函数都可能失败,所以我们就需要在每一层都判断失败的情况,这就导致了代码看起来十分的臃肿。
-
Promise
ES6中的Promise解决了回调函数回调地狱的问题,采用了链式调用。并且可以错误冒泡,在链式调用的下面.catch进行错误的处理。 -
async + await
这是ES7的关键字,加上async的函数都默认返回一个Promise对象,async+await让异步代码以同步的方式来执行。