同步与异步(一)

本文探讨了同步与异步的概念,并重点讲解了什么是回调地狱,它导致的代码冗杂和可读性问题。通过举例展示了如何创建一个动画效果,以此说明回调地狱的情况。文章最后抛出问题,如何解决这个问题,暗示将在后续内容中继续讨论。
摘要由CSDN通过智能技术生成

1、同步与异步

    <script>
        /*
        javaScript是一个单线程的语言
        同步和异步是一种消息通知机制
        
        同步阻塞:A调用B,B处理获得结果,才会返回给A,A在这个过程中,一直在等待的B的处理结果,
                 没有拿到结果之前,需要A一直等待,直到拿到结果,然后才继续往下执行

        异步非阻塞:A调用B, 无需等待B的结果,继续运行下一步。B通过状态,通知,回调等方式在完成后,通知A
        */

        {
   
            //同步(简单理解就是只有上一件事做完,才能接着做下一件事)
            let a = 10;
            function getNum(){
   
                a = 20;
            }
            getNum();
            console.log(a);//20 a的初始值为10,然后调用函数后被修改为20

            // 异步(上一件事没做完,可以去做下一件事或多件事)
            //事件、定时器、网络请求都是异步的
            let b= 10;
            setTimeout(()=>{
   
                b = 20;
            },2000);
            console.log(b);//10 b初始值为10,然后在定时器中给b重新赋值,但是延迟2秒执行,需要等待,不同步执行,所以b最后输出还是10
        }
    </script>

2、异步的回调地狱
回调地狱是什么?简单说一下,就是为了实现某些功能,使用函数嵌套(函数里面再调用函数),可能会嵌套很多层函数,这就形成了一个回调地狱。过多了会造成代码冗杂,可读性较差,影响对代码的理解等问题。下面举个例子:
实现元素从起点移动,沿顺时针方向,运动一周回到起点,然后再反方向运动,直到到达中心位置停止的动画效果

css代码:

 <style>
        #big{
   
             width:400pc;
             height:400pc;
             background:lightgreen;
             position:relative;
         }
        #box{
   
            width: 100px;
            height: 100px;
            background: lightblue;
            position
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值