回调地狱:指的是代码大量使用了回调函数,在一个函数里面调用另一个函数一直嵌套函数进行调用。页面就会显得很混乱。
举个例子
我们需要从接口获取数组然后进行操作
getMsg(function(){
//操作
})
如果在我们拿的返回值作为参数传到第二个接口中。才能获取数据怎么办?没关系加个嵌套就可以了:
getMsg(function(){
getMsg1(function(){
//获取数据
})
})
在如果我还要在此基础上去访问第三个接口呢?或者是根据条件决定是否访问第三个接口呢?。那样页面一层层的ajax的嵌套,就是回调地狱的现象了。
es6的promise可以解决这个问题
我们把一个个的访问接口的内容写在成promise方法
function getMsg(){
var p=new Promise(function(resolve, reject){
$.ajax({
url:"https://api.vvwx.net/studentclient/homepage/allnavigationicon",
data:JSON.stringify({schid: "19",subtype: "11"}),
type:'POST