什么是地狱回调?解决回调地狱的两种方法
地狱回调概念:回调函数套回调函数的情况就叫做回调地狱,
//地狱回调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();
什么是地狱回调?解决回调地狱的两种方法相关推荐
- 解决ms_cannot_allocmem错误的两种方法
在mapgis插入光栅图件或者在图像分析数据转换成MSI格式时经常会出现ms_cannot_allocmem错误,如下图所示. 解决这一错误有两个方法: 1.把要插入或者转换的图片格式转换成另外一种图 ...
- 解决 Unresolved variable $ 的两种方法
如何解决 Unresolved variable $ webstorm 中提示Unresolved variable $t 问题描述: 波浪线提示未解析变量 解决方案: 有两种可能存在的问题: 一. ...
- php title限制字数,dedecms:title解决字数限制的两种方法
织梦title字数怎样限制呢?相信对织梦cms熟悉的朋友来说,这真不是一个问题.当然了,有些方法并不能通用,在特殊情况下,是没有效果的哦.好了,别的不说了,给大家贴两种常用的方法吧. 织梦cms限制t ...
- vue cli3解决跨域的两种方法
请去下面网站非常清晰:https://www.jianshu.com/p/eb3de95cfc82
- python提交表单无效_使用Django Form解决表单数据无法动态刷新的两种方法
一.无法动态更新数据的实例 1. 如下,数据库中创建了班级表和教师表,两张表的对应关系为"多对多" from django.db import models class Class ...
- 哈希查找解决地址冲突的两种最常见方法(线性探测再散列,链地址法)C++实现
哈希查找解决地址冲突的两种最常见方法(线性探测再散列,链地址法)C++实现 参考文章: (1)哈希查找解决地址冲突的两种最常见方法(线性探测再散列,链地址法)C++实现 (2)https://www. ...
- Mysql使用binlog恢复数据解决误操作问题的两种方法
Mysql使用binlog恢复数据解决误操作问题的两种方法 参考文章: (1)Mysql使用binlog恢复数据解决误操作问题的两种方法 (2)https://www.cnblogs.com/Data ...
- 解决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 ...
- 解决多线程安全问题-无非两个方法synchronized和lock 具体原理以及如何 获取锁AQS算法 (百度-美团)
解决多线程安全问题-无非两个方法synchronized和lock 具体原理以及如何 获取锁AQS算法 (百度-美团) 参考文章: (1)解决多线程安全问题-无非两个方法synchronized和lo ...
- eclipse中将项目打包成jar的两种方法,及其问题与解决方法
eclipse中将项目打包成jar的两种方法,及其问题与解决方法 参考文章: (1)eclipse中将项目打包成jar的两种方法,及其问题与解决方法 (2)https://www.cnblogs.co ...
最新文章
- 在Linux上安装Python 3
- Windows Internals 笔记——关联性
- 数据结构和算法解析:排序问题简易总结
- 获取ISAPI_Rewrite重写后的URL
- pytorch之embedding
- Python数据类型之元祖
- 录屏 模拟器_系统自带的录屏好用吗?其实有功能更强大的软件
- python两数相加有进退位_Python 之父透露退位隐情,与核心开发团队产生隔阂
- 数据库变为可疑_SQL数据库可疑解决方法
- html5吻胸小游戏,html5气球大战小游戏代码
- 云计算中网络基础知识
- 2021年全球与中国汽车TSR(交通标志识别)系统行业市场规模及发展前景分析
- html微信表情,emoji表情,QQ表情,微信表情转换
- 通过bootstrap4框架制作商城网页
- 内容领先地位无法撼动,腾讯音乐与环球续约将共建新厂牌
- 解决CSS IOS字体自动调整放大了
- Java mail使用QQ邮箱发送邮件配置方案
- Sms开源短信及消息转发器,不仅只转发短信,备用机必备神器
- w5500跨网段_基于STM32F1的局域网通信模块W5500驱动
- 密码忘用计算机解开,台式电脑密码忘记了怎么解开