【Callback Hell】一文让你轻松了解何为回调地狱?

本文介绍了JavaScript中的回调函数和回调地狱的概念,强调了回调地狱带来的代码耦合和排错困难问题。通过实例解释了回调地狱的形成原因,并提出了通过代码封装和使用Promise、Generator、async/await来改善异步处理,提高代码可读性和维护性。
摘要由CSDN通过智能技术生成

回调地狱【Callback Hell】

前提知识点:

单线程和异步:

  1. JS是单线程语言,只能同时做一件事儿 (例子:做一个ajax请求去加载资源,或者说弄一个定时器,先等待1秒钟后干嘛,如果按照单线程这个只能同时做一件事儿,那么它在这个事情中,它就卡住了,卡住的话鼠标点不了,js不执行。这就是同时做一件事,这就是js单线程的本质。)
  2. 浏览器和node.js已支持JS启动进程,如Web Worker
  3. Js和DOM渲染共用同一个线程,因为JS可修改DOM结构
一、	遇到等待(网络请求,定时任务)不能卡住
二、	需要异步(解决单线程等待的问题)
三、	异步基于callback函数形式来调用的
四、  异步不会阻塞代码执行
五、  同步会阻塞代码执行

何为回调?

回调函数是必须得依赖另一个函数执行调用,它是异步执行的,也就是需要时间等待


何为回调地狱?

例子:Ajax应用,比如http请求

在不刷新浏览器的情况下,当你执行DOM事件时,比如页面上点击某链接,回车等事件操作,浏览器会悄悄向服务端发送若干http请求,携带后台可识别的参数,等待服务器响应返回数据,这个过程是异步回调的,当许多功能需要连续调用,环环相扣依赖时,它就类似下面的代码

/* mock ajax */
function request(options) {
   
    setTimeout(function() {
   
        var response = {
   
            code:'success',
            content: options.data
        };
        options.success
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值