目录

  • 什么是回调地狱?
  • 回调地狱callback hell写法
  • 使用generator解决
  • 使用Promise解决
  • 使用async&await解决

什么是回调地狱?

回调地狱是指在异步js里,回调函数写的太多了,回调套回调,导致代码的可读性下降,十分混乱。

问题需求:1s后输出1,再过1s后输出2,再过1s后输出3。

回调地狱callback hell写法

setTimeout(() => {console.log(1);setTimeout(() => {console.log(2);setTimeout(() => {console.log(3);}, 1000);}, 1000);
}, 1000);

使用generator解决

function func(num) {setTimeout(() => {console.log(num);iterator.next();}, 1000);
}function* gen() {yield func(1);yield func(2);yield func(3);
}let iterator = gen();
iterator.next();

使用Promise解决

function func(num) {return new Promise(resolve => {setTimeout(() => {resolve('success');console.log(num);}, 1000);})
}let p = func(1);p.then(() => {return func(2);
}).then(() => {return func(3);
});

使用async&await解决

function func(num) {return new Promise(resolve => {setTimeout(() => {resolve('success');console.log(num);}, 1000);})
}(async function() {await func(1);await func(2);await func(3);
})()

解决回调地狱的三个方法相关推荐

  1. 什么是地狱回调?解决回调地狱的两种方法

    地狱回调概念:回调函数套回调函数的情况就叫做回调地狱, //地狱回调setTimeout(function () { //第一层console.log('武林要以和为贵');setTimeout(fu ...

  2. ES6----promise方法解决回调地狱问题

    ES6–promise方法解决回调地狱问题 要解决回调地狱问题,首先要了解回调地狱的产生是由于早期的javascript只支持回调函数来表现异步操作完成,由于业务逻辑复杂时,就会出现一个串联多个异步操 ...

  3. 链式调用和解决回调地狱的终极解决方法async,await

    promise链式调用 **then 是成功回调,只要在then后边return一个promise就可以继续then**<script type="text/javascript&qu ...

  4. Promise链式调用和解决回调地狱的ES7终极解决方法async,await

    promise链式调用 **then 是成功回调,只要在then后边return一个promise就可以继续then**<script type="text/javascript&qu ...

  5. 解决回调地狱终极方法 - ES7新增 - async 和 await

    概念: ES7 新增的 专门 配合 promise封装函数一起执行的程序 async: - 关键字 - 异步的 await: - 关键字 - 等待 作用: 让 异步程序 按照顺序 一个一个的执行 也是 ...

  6. 什么是回调地狱?解决回调地狱的方法

    什么是回调地狱?(代码执行顺序的一种操作(解决异步)) 回调地狱的概念:回调函数里面嵌套回调函数. //地狱回调setTimeout(function () { //第一层console.log('1 ...

  7. Promise相关内容(三)——异步获取服务器数据:promise方式解决回调地狱的问题。通过多个.then使代码可读性更高 实现异步任务的串行执行,保证按顺序发送请求获取数据

    Promise相关内容(三)--异步获取服务器数据:promise方式解决回调地狱的问题.通过多个.then使代码可读性更高 & 实现异步任务的串行执行,保证按顺序发送请求获取数据 第一种形式 ...

  8. Promise(解决回调地狱)

    Promise() 对象: 存在三种状态: //进行时 pending// 成功 resolve//失败 reject 执行语句: let promise= new Promise((resolve, ...

  9. promise解决回调地狱(callback hell)

    promise解决回调地狱(callback hell) 具体参考 阮一峰,ES6标准入门 在我们需要对一个异步操作进行频繁的调用的时候,且要保证一步操作的顺序,可能会出现 回调地狱(callback ...

最新文章

  1. 13-计算最长英语单词链
  2. 如何在CentOS/RHEL 7上借助ssm管理LVM卷?
  3. java 创建多线程_Java创建多线程
  4. 青龙羊毛——某世界扶持及新脚本
  5. python知识:用turtle绘制樱桃树
  6. iOS 史上最详细的app测试或者上架AppStore流程
  7. 是否可以从头来过——时间旅行为什么不可能
  8. 关于非堆内存申请的性能测试
  9. java垃圾回收文档整理
  10. 服务器数据拷贝到硬盘软件,硬盘对拷(拷贝) - 轻松搞定硬盘复制!
  11. emoji表情包整理好的
  12. 安卓系统加速_谷歌与安卓合作开发预警系统,安卓手机将成“迷你地震仪”
  13. 包含C/C++开发文档的Docset文档库
  14. 新智慧杂志新智慧杂志社新智慧编辑部2022年第9期目录
  15. 一篇文章带你搞懂微信小程序的开发过程
  16. “购物狂欢节”如何应对“羊毛党”
  17. 蓝桥杯练习-位平方和
  18. 链接脚本.lds文件分析
  19. 如何利用python刷微博粉丝最多的明星_明星微博粉丝究竟有多少是真的?
  20. 主数据建设的挑战与发展

热门文章

  1. Web 页面录屏实现
  2. NFT合约解析(4)——Counters.sol——2021.5.19
  3. 外贸乙方推广公司需要什么样的团队?
  4. 数据科学家分享:AI之主流CNN网络的架构分析
  5. 适用于Java开发人员的微服务:管理安全性和机密
  6. 第 46 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(南京),签到题5题
  7. JavaWeb会员管理系统教程+源码下载
  8. [微云助手/微小云怎么用]如何设置新人欢迎语
  9. 达观数据宣布获得由深创投领投的2.7亿元B+轮融资
  10. 区块链应用项目背景_区块链项目包装、一站式包装宣发策划介绍