什么叫做回调地狱

    回调地狱,在js里,在异步js里,回调函数写的太多了,回调套回调,然后很难凭直觉看懂代码。

 

举一个回调地狱的例子

show(() => {
          hide(() => {
                show(() => {
                    hide(() => {
                           show(() => {
                                dra()
                           })
                     })
                })
          })
    })

 

怎么避免回调地狱

1、写浅一些,不要层层嵌套;

2、使用模块化技术;

3、对错误进行单独处理,而不是套很多错误处理的回调;

 

1、推荐使用 使用Promise 

2、推荐使用 promise 和 ES7推出的 async/await  异步等待 完美编写

function p() {
      return new Promise((resolve, reject) => {
           setTimeout(()=>{
             resolve("hello word")
           },1000)
        })
   }

 

async function asyncFun(){
   var data = await p();
   return data;
}

 

var temp = asyncFun()
 temp.then(data=>{
     console.log(data)
 })