地狱回调概念:回调函数套回调函数的情况就叫做回调地狱,

    //地狱回调setTimeout(function () {  //第一层console.log('武林要以和为贵');setTimeout(function () {  //第二程console.log('要讲武德');setTimeout(function () {   //第三层console.log('不要搞窝里斗');}, 1000)}, 2000)}, 3000)

promise解决方式

    // promise解决方式function fn(str) {var p = new Promise(function (resolve, reject) {//处理异步任务var flag = true;setTimeout(function () {if (flag) {resolve(str)}else {reject('操作失败')}})})return p;}fn('武林要以和为贵').then((data) => {console.log(data);return fn('要讲武德');}).then((data) => {console.log(data);return fn('不要搞窝里斗')}).then((data) => {console.log(data);}).catch((data) => {console.log(data);})

async/await解决方式

    //封装一个返回promise的异步任务function fn(str) {var p = new Promise(function (resolve, reject) {var flag = true;setTimeout(function () {if (flag) {resolve(str)} else {reject('处理失败')}})})return p;}//封装一个执行上述异步任务的async函数async function test() {var res1 = await fn('武林要以和为贵');  //await直接拿到fn()返回的promise的数据,并且赋值给resvar res2 = await fn('要讲武德');var res3 = await fn('不要搞窝里斗');console.log(res1, res2, res3);}//执行函数test();

什么是地狱回调?解决回调地狱的两种方法相关推荐

  1. 解决ms_cannot_allocmem错误的两种方法

    在mapgis插入光栅图件或者在图像分析数据转换成MSI格式时经常会出现ms_cannot_allocmem错误,如下图所示. 解决这一错误有两个方法: 1.把要插入或者转换的图片格式转换成另外一种图 ...

  2. 解决 Unresolved variable $ 的两种方法

    如何解决 Unresolved variable $ webstorm 中提示Unresolved variable $t 问题描述: 波浪线提示未解析变量 解决方案: 有两种可能存在的问题: 一. ...

  3. php title限制字数,dedecms:title解决字数限制的两种方法

    织梦title字数怎样限制呢?相信对织梦cms熟悉的朋友来说,这真不是一个问题.当然了,有些方法并不能通用,在特殊情况下,是没有效果的哦.好了,别的不说了,给大家贴两种常用的方法吧. 织梦cms限制t ...

  4. vue cli3解决跨域的两种方法

    请去下面网站非常清晰:https://www.jianshu.com/p/eb3de95cfc82

  5. python提交表单无效_使用Django Form解决表单数据无法动态刷新的两种方法

    一.无法动态更新数据的实例 1. 如下,数据库中创建了班级表和教师表,两张表的对应关系为"多对多" from django.db import models class Class ...

  6. 哈希查找解决地址冲突的两种最常见方法(线性探测再散列,链地址法)C++实现

    哈希查找解决地址冲突的两种最常见方法(线性探测再散列,链地址法)C++实现 参考文章: (1)哈希查找解决地址冲突的两种最常见方法(线性探测再散列,链地址法)C++实现 (2)https://www. ...

  7. Mysql使用binlog恢复数据解决误操作问题的两种方法

    Mysql使用binlog恢复数据解决误操作问题的两种方法 参考文章: (1)Mysql使用binlog恢复数据解决误操作问题的两种方法 (2)https://www.cnblogs.com/Data ...

  8. 解决vue项目eslint校验 Do not use ‘new‘ for side effects 的两种方法

    解决vue项目eslint校验 Do not use 'new' for side effects 的两种方法 参考文章: (1)解决vue项目eslint校验 Do not use 'new' fo ...

  9. 解决多线程安全问题-无非两个方法synchronized和lock 具体原理以及如何 获取锁AQS算法 (百度-美团)

    解决多线程安全问题-无非两个方法synchronized和lock 具体原理以及如何 获取锁AQS算法 (百度-美团) 参考文章: (1)解决多线程安全问题-无非两个方法synchronized和lo ...

  10. eclipse中将项目打包成jar的两种方法,及其问题与解决方法

    eclipse中将项目打包成jar的两种方法,及其问题与解决方法 参考文章: (1)eclipse中将项目打包成jar的两种方法,及其问题与解决方法 (2)https://www.cnblogs.co ...

最新文章

  1. 在Linux上安装Python 3
  2. Windows Internals 笔记——关联性
  3. 数据结构和算法解析:排序问题简易总结
  4. 获取ISAPI_Rewrite重写后的URL
  5. pytorch之embedding
  6. Python数据类型之元祖
  7. 录屏 模拟器_系统自带的录屏好用吗?其实有功能更强大的软件
  8. python两数相加有进退位_Python 之父透露退位隐情,与核心开发团队产生隔阂
  9. 数据库变为可疑_SQL数据库可疑解决方法
  10. html5吻胸小游戏,html5气球大战小游戏代码
  11. 云计算中网络基础知识
  12. 2021年全球与中国汽车TSR(交通标志识别)系统行业市场规模及发展前景分析
  13. html微信表情,emoji表情,QQ表情,微信表情转换
  14. 通过bootstrap4框架制作商城网页
  15. 内容领先地位无法撼动,腾讯音乐与环球续约将共建新厂牌
  16. 解决CSS IOS字体自动调整放大了
  17. Java mail使用QQ邮箱发送邮件配置方案
  18. Sms开源短信及消息转发器,不仅只转发短信,备用机必备神器
  19. w5500跨网段_基于STM32F1的局域网通信模块W5500驱动
  20. 密码忘用计算机解开,台式电脑密码忘记了怎么解开

热门文章

  1. 小a与星际探索 线性基算法
  2. 一步一动在PVE安装黑群晖
  3. 高校教师开计算机培训中心,计算中心
  4. 【matlab】:matlab的linspace函数解析
  5. 裴蜀定理、拓展欧几里得及其证明
  6. 我放弃了VMware
  7. Py之easydict:easydict的简介、安装、使用方法之详细攻略
  8. jsTree API文档(中文)
  9. windows下Ardupilot编译环境搭建
  10. 交叉验证(s折、分层、留一法)