首页 > 其他分享 >同步和异步

同步和异步

时间:2024-11-16 20:58:06浏览次数:1  
标签:异步 同步 console log 200 300 100

一、javascript中为什么需要引入异步?

   1.我们知道js是单线程语言,只能同时做一件事。但在遇到需要等待(网络请求,定时任务)不能卡住,所以引入了异步

   2.异步就是为了解决单线程需要等待的问题(如:网络请求,定时任务)

 3.异步是基于回调 callback 函数形式 

二、同步和异步

1.异步:不会阻塞代码执行,

//异步
console.log(100)
setTimeout(()=>{ // 回调函数
    console.log(200)
},1000)
console.log(300)

 代码依次输出: 100  、300 、200

2.同步:会阻塞代码执行,上一行代码没执行完不会往下执行

//同步
console.log(100)
alert(200)
console.log(300)

alert 弹窗不关闭,下一行代码不会执行

三、异步应用场景

  1.网络请求,如:ajax、图片加载

//ajax
console.log('start')
$.get('./data1.json',function(data1){
      console.log(data1)
})
console.log('end')
//图片加载
console.log('start')
let img = document.createElement('img')
img.onload = function(){
      console.log('loaded')
}
img.src = '/xxx.png'
console.log('end')

  2. 定时任务,如setTimeout、setInterval

//setTimout
console.log(100)
setTimeout(function(){
      console.log(200)
},1000)
console.log(300)
//setInterval
console.log(100)
setInterval(function(){
     console.log(200)
},1000)
console.log(300)

 

标签:异步,同步,console,log,200,300,100
From: https://www.cnblogs.com/yangkangkang/p/18549811

相关文章

  • 一文讲透 FPGA CDC 多bit跨时钟域同步-hand-shanking机制
    一、背景数据的跨时钟域处理是FPGA开发过程中的常见问题,存在两种情况慢时钟向快时钟同步:只需在快时钟域打两拍即可。其RTL如下:打拍同步的原理:大家在初学FPGA时,经常听过FPGA中对信号打拍可以有效得避免亚稳态,而且一般要打两拍,其数学本质是如果打一拍发生错误得概率是1/1000......
  • unity3d————Resources异步加载
    知识点一:Resources异步加载是什么?在Unity中,资源加载可以分为同步加载和异步加载两种方式。同步加载会在主线程中直接进行,如果加载的资源过大,可能会导致程序卡顿,因为从硬盘读取数据到内存并进行处理是需要时间的。而异步加载则是Unity内部新开一个线程进行资源加载,这样就不会造......
  • React setState是异步吗?
     React官网对于setState的说明:将setState()认为是一次请求而不是一次立即执行更新组件的命令。为了更为可观的性能,React可能会推迟它,稍后会一次性更新这些组件。React不会保证在setState之后,能够立刻拿到改变的结果。以上说明执行setState时,有可能是异步(大部分情况下)更新......
  • 异步学习小例子
    voidTest1(){ChangeText("==========================================================");ChangeText("iamwashingleftnow...");}//执行Test方法为Test线程asyncvoidTest()......
  • 如何使用 MySQL Workbench 自动生成 ER 图、同步更新远程数据库 - MySQL Workbench 使
    https://zhuanlan.zhihu.com/p/438270644       ......
  • stringRedisTemplate 异步操作的问题记录
    一、问题背景StringRedisTemplate使用stringRedisTemplate.opsForValue().set时,会出现set之后立马get获取值,发现获取不到set进去的值。二、问题原因1、在使用redisson的情况下,stringRedisTemplate.opsForValue().set操作会是异步操作,造成。你在set之后,立马get获取值的时候会......
  • 【FastAPI】解决下载文件预处理时间较长的问题:FastAPI 实现异步任务处理
    解决下载文件预处理时间较长的问题:FastAPI实现异步任务处理在开发Web应用时,我们经常会遇到需要对文件进行预处理的场景。例如,用户请求下载一个文件之前,需要进行压缩、转换或者数据处理等操作。然而,这些预处理任务往往会花费较长时间,如果我们在后端直接处理这些任务,会导......
  • Java8 CompletableFuture异步任务
    无返回值调用importjava.util.concurrent.CompletableFuture;publicclassTestDemo{publicstaticvoidmain(String[]args){System.out.println("进入主线程=============");CompletableFuture.runAsync(()->getNum());System.......
  • 解决 uniapp打包app 使用uview的图片上传导致的 您的应用在运行时,未同步告知权限申请
    该问题主要原因是因为u-upload的组件在点击上传组件就直接触发了权限获取而华为的要求是点击拍摄提示获取相机权限并提示点击从相册选择获取存储权限并提示本文主要解决uview的u-upload导致的问题解决思路为修改u-upload组件在u-upload组件添加以下代码//自定义......
  • 深入理解Spring框架中的@Async注解实现异步任务
    目录1.引言2.环境准备3.启用异步支持4.创建异步任务5.调用异步任务6.运行应用7.使用@Async需要注意的地方8.结论在现代Web应用中,异步任务的执行变得越来越重要。Spring框架提供了强大的@Async注解,可以帮助开发者轻松实现异步任务。本文将详细介绍如何在Sprin......