1、什么是回调地狱?
打个通俗点的比方,就是在你做一件事情的同时,又想做别的事情,比如,今天你出去逛街,又想吃火锅,又想喝奶茶,那么购买之后,不同店家开始分别做奶茶和火锅,那么 这两个方法就是异步的。
那么什么是回调呢?比如 做奶茶需要两秒 火锅需要一秒,但是你想先喝奶茶再吃火锅那么就可以在奶茶的方法里回调火锅,如下图:
上面的两个方法,即使奶茶需要等待的时间比火锅长,但是通过回调先执行得到结果的依然是奶茶,如果你想做很多事情,比如逛商场的时候想吃饭、唱歌、按摩。。。这么一系列的事情,那么就产生了回调地狱,如下图:
如上图,当你想异步获取数据的时候,就必须得用回调,当在回调里面想控制顺序的时候 就得嵌套,然后就产生了回调地狱,维护起来非常死板麻烦。
在es6出现之后,咱们就可以通过promise对象来解决回调地狱,如下图:
那么如何使用promise对象来改造我们的方法呢?如下图:
然后我们通过then去完成上面回调可以完成的事情