| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> JavaScript知识库 -> 回调地狱 -> 正文阅读 |
|
[JavaScript知识库]回调地狱 |
目录 一、回调地狱在了解回调地狱之前,先了解一下 ‘ 回调函数’和‘ 异步任务 ’ 1、回调函数回调函数: 当一个函数作为参数传入另一个函数中,并且它不会立即执行,只有当满足一定条件后该函数才可以执行,这种函数就称为回调函数。
2、异步任务? ?与之相对应的概念是“同步任务”,同步任务在主线程上排队执行,只有前一个任务执行完毕,才能执行下一个任务。异步任务不进入主线程,而是进入异步队列,前一个任务是否执行完毕不影响下一个任务的执行。
输出结果? ? ? 3、回调地狱回调地狱:在回调函数中再嵌套回调函数的情况称为回调地狱(是实现代码顺序执行的一种操作方式)
? ? ?这种回调函数中嵌套回调函数的情况就叫做回调地狱。回调地狱就是为是实现代码顺序执行而出现的一种操作,? 二、解决回调地狱问题回调地狱的问题: .嵌套层次很深,可读性差,难以维护 .无法正常使用return 和throw .无法正常检索堆栈信息 .多个回调之间难以建立联系 回调地狱的解决办法: ? ? ? ? ? ?(1)、Promise ? ? ? ? ? ?(2)、async/await 1、Promise对象? ? ?(1)Promise是js中的一个原生对象,是一种异步编程的解决方案,可以替换掉传统的回调函数解决方案。????? ? ? ?(2)它通过引入一个回调,避免更多的回调. ????? 简单说Promise就是一个容器,里面保存着某个未来才会结束的事件 (通常是一个异步操作)的结果。从语法上说,Promise是一个对象,从它可以获取异步操作的消息。 Promise有3个状态
(3)用法: Promise 状态发生改变,就会触发.then()里的响应函数处理后续步骤. Promise 状态一经改变,不会再变. Promise 实例一经创建,执行器立即执行. ?? ?
?
2、async和await函数(1)为什么有async/awaitPromise虽然跳出了异步嵌套的怪圈,用链式表达更加清晰,但是我们也发现如果有大量的异步请求的时候,流程复杂的情况下,会发现充满了屏幕的then,看起来非常吃力,而ES7的async/await的出现就是为了解决这种复杂的情况 ? 例如:实现一个暂停功能,输入N毫秒,则停顿N毫秒后才继续往下执行。
async 在这里使用起来就像同步代码那样直观 (2)使用async/await基本规则
(3)promise和async/await区别1、promise是ES6,async/await是ES7 2 、async/await相对于promise来讲,写法更加优雅 3 、reject状态: ??? 1)promise错误可以通过catch来捕捉,建议尾部捕获错误 ??? 2)async/await既可以用.then又可以用try-catch捕捉 |
|
JavaScript知识库 最新文章 |
ES6的相关知识点 |
react 函数式组件 & react其他一些总结 |
Vue基础超详细 |
前端JS也可以连点成线(Vue中运用 AntVG6) |
Vue事件处理的基本使用 |
Vue后台项目的记录 (一) |
前后端分离vue跨域,devServer配置proxy代理 |
TypeScript |
初识vuex |
vue项目安装包指令收集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 12:28:32- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |