ajax异步和同步请求感悟

今天写代码遇到了一个ajax默认异步请求而导致的bug

本来的代码是这样,用ajax向后端请求数据,然后把请求到的数据给myTask变量赋值,来给下面的代码使用,结果发现后端可以传回来数据,ajax中的myTask也赋上了值,但是外面这个myTask变量却没有赋上值。
在这里插入图片描述
在大佬的帮助下明白了,ajax一般是默认异步处理。在执行ajax时,由于默认是异步请求,ajax还没执行完,还没有给上面的myTask变量赋上值,下面的代码已经开始用这个空的myTask变量,继续执行下面的代码了,所以我们要想给上面的变量赋值,那么我们要给ajax改成同步处理。
jquery 中async属性:默认是true,也就是异步请求 false是同步请求。完成之后代码正常运行。
在这里插入图片描述

什么是异步处理?

异步和我们生活中的异步不一样,异步和生活中的同步类似。
生活中,比如有两个人,在同一时间,一个人在看书,一个人在踢球,互相不干扰。
在代码中,我用ajax向服务器发送请求,此时不管服务器有没有给ajax响应,后面的的代码也能进行。

那什么是同步处理?

同步就像排队一样,必须等你完成了,我才能进行。比如我们去火车站买票,我们需要排队,我们要想买到票,必须等前面的人都买好,我们才能买。
同步处理在ajax中就是ajax向服务器发送请求,如果后面的代码想要执行,那么必须等待ajax执行完毕才能继续执行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值