什么是回调地狱?以及如何解决回调地狱
概念
回调地狱的概念:回调函数里面嵌套回调函数。
//地狱回调setTimeout(function () { //第一层console.log('张三');//等3秒打印张三在执行下一个回调函数setTimeout(function () { //第二层console.log('李四');//等2秒打印李四在执行下一个回调函数setTimeout(function () { //第三层console.log('王五');//等一秒打印王五}, 1000)}, 2000)}, 3000)
回调地狱是为了让我们代码执行顺序的一种操作(解决异步),但是它会使我们的可读性非常差。
promise解决
// promise解决方式
function fn(str) {var promise = new Promise(function (success, error) { //success 是成功的方法 error是失败的方法 //处理异步任务var flag = true;setTimeout(function () {if (flag) {success(str)}else {error('失败')}})})return promise;
}fn('张三').then((res) => { //then是成功执行的方法 返回的还是一个promise对象console.log(res);//打印张三 res是执行return fn('李四');}).then((res) => {console.log(res);return fn('王五')}).then((res) => {console.log(res);}).catch((res) => { //catch是失败执行的方法console.log(res);})
async/await解决
//封装一个返回promise的异步任务function fn(str) {var promise = new Promise(function (success, error) {var flag = true;setTimeout(function () {if (flag) {success(str)} else {error('处理失败')}})})return promise;}//封装一个执行上述异步任务的async函数async function test() {var res1 = await fn('张三'); //await直接拿到fn()返回的promise的数据,并且赋值给resvar res2 = await fn('李四');var res3 = await fn('王五');console.log(res1);console.log(res2);console.log(res3);}//执行函数test();
什么是回调地狱?以及如何解决回调地狱相关推荐
- 一文告诉你什么是回调地狱,如何解决回调地狱?
文章目录 前言 一.回调地狱是什么? 二.如何解决回调地狱 1.Promise 2.async/await 总结 前言 在正式了解"回调地狱"之前,我们先了解两个概念: 回调函数 ...
- 什么是回调地狱?如何解决回调地狱
一.什么是回调地狱呢? 地狱这个词不陌生吧!对,没错就是那个十八层地狱的地狱,一层一层的地狱. 1.同步API,异步API的区别 这个问题呢,需要从Node.js的API说起,这里就会有人问了?博主你 ...
- 什么是回调地狱?怎么解决回调地狱
前言 在正式了解"回调地狱"之前,我们先了解两个概念: 回调函数 当一个函数作为参数传入另一个参数中,并且它不会立即执行,只有当满足一定条件后该函数才可以执行,这种函数就称为回调函 ...
- 什么是回调地狱以及怎样解决回调地狱
回调地狱: 指的是在一个回调函数里面再嵌套一层回调函数,层层嵌套,虽然并不会影响其正常运行,但很影响观感. 例如: //需要 引入 axios <script src="./day1/ ...
- ES6----promise方法解决回调地狱问题
ES6–promise方法解决回调地狱问题 要解决回调地狱问题,首先要了解回调地狱的产生是由于早期的javascript只支持回调函数来表现异步操作完成,由于业务逻辑复杂时,就会出现一个串联多个异步操 ...
- 什么是回调函数?回调函数有什么缺点?如何解决回调地狱问题?
什么是回调函数?回调函数有什么缺点?如何解决回调地狱问题? 参考文章: (1)什么是回调函数?回调函数有什么缺点?如何解决回调地狱问题? (2)https://www.cnblogs.com/kzxi ...
- Promise使用,return的运用,解决回调地狱
Promise使用,return的运用,解决回调地狱 回调地狱 httpBookModel.getHotList().then((res) => {console.log(res)httpBoo ...
- Promise解决回调地狱写法
这里可以使用Promise来解决回调地狱的问题! 那么我们这里有一个需求,就是我们需要读取三个 .txt 文件,需要第一个文件读取完成后才能读取第二个文件以此类推. 那么这里来一个Promise的错误 ...
- Promise(解决回调地狱)
Promise() 对象: 存在三种状态: //进行时 pending// 成功 resolve//失败 reject 执行语句: let promise= new Promise((resolve, ...
- promise解决回调地狱(callback hell)
promise解决回调地狱(callback hell) 具体参考 阮一峰,ES6标准入门 在我们需要对一个异步操作进行频繁的调用的时候,且要保证一步操作的顺序,可能会出现 回调地狱(callback ...
最新文章
- 使用Eclipse编译运行MapReduce程序 Hadoop2.6.0/Ubuntu
- Java 洛谷 P1307 数字反转
- Ashby diagram
- 事务管理基础:数据库的并发控制相关知识笔记
- 项目进度计划甘特图_项目管理进度计划表制作及甘特图绘制方法
- JTA 深度历险 - 原理与实现
- python 字体_python docx字体设置
- C#常用类库----CSV文件操作类
- Qt 串口通信 高速发送出错的解决方法总结
- 微软“照片”应用Raw 格式图像编码器漏洞 (CVE-2021-24091)的技术分析
- 项目一实时数仓数据采集
- ug如何复制面_了解了一下内容,让你UG快速入门
- SQLserver中勒索病毒或严重损坏后的恢复数据方法
- JQuery学习之路Part8:家族树操作(查找祖先、后代、兄弟同胞、绝对查找)【完结】
- LCD12864液晶显示
- Docker构建JDK 镜像
- 6、使用Java Low Level REST Client操作elasticsearch.docx
- 黑马程序员前端-CSS练手之学成在线页面制作
- python修饰器classmate_python-一些需要注意的知识点
- 【C】C语言之经典算法:河内之塔(1)