什么叫做回调地狱
回调地狱,在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) })