首页 > 编程语言 >JavaScript中的异步、同步和回调函数

JavaScript中的异步、同步和回调函数

时间:2022-12-06 16:34:16浏览次数:36  
标签:异步 同步 函数 JavaScript print 回调

异步(Asynchronous, async)是与同步(Synchronous, sync)相对的概念。

在我们学习的传统单线程编程中,程序的运行是同步的(同步不意味着所有步骤同时运行,而是指步骤在一个控制流序列中按顺序执行)。而异步的概念则是不保证同步的概念,也就是说,一个异步过程的执行将不再与原有的序列有顺序关系。

简单来理解就是:同步按你的代码顺序执行,异步不按照代码顺序执行,异步的执行效率更高。

以上是关于异步的概念的解释,接下来我们通俗地解释一下异步:异步就是从主线程发射一个子线程来完成任务。

 

 

 

但是子线程有一个局限:一旦发射了以后就会与主线程失去同步,我们无法确定它的结束,如果结束之后需要处理一些事情,比如处理来自服务器的信息,我们是无法将它合并到主线程中去的。

为了解决这个问题,JavaScript 中的异步操作函数往往通过回调函数来实现异步任务的结果处理。

 

 

回调函数

回调函数就是一个函数,它是在我们启动一个异步任务的时候就告诉它:等你完成了这个任务之后要干什么。这样一来主线程几乎不用关心异步任务的状态了,他自己会善始善终。

function print() {
   alert("hahahah")
}
setTimeout(print, 1000)

print就是一个回调函数,也可以写成如下形式:

setTimeout(function() {
  alert("hahaha")
},1000)

 

 

文章来源:https://www.runoob.com/js/js-async.html

标签:异步,同步,函数,JavaScript,print,回调
From: https://www.cnblogs.com/renmengqiu/p/16955697.html

相关文章

  • 摹客RP,资源库可随项目同步离线导出!
    Hello,小伙伴们,又到了摹客的新功能播报时间。本月更新,摹客RP在导出项目文件方面,可支持​​同步导出该项目的资源库​​​,方便后续复用资源;摹客协作对​​任务管理​​模块进......
  • 【javascript】call、bind、apply方法的作用和区别
    1、call,apply,bind相同点都是改变this的指向接收的第一个参数都是要指向的对象都可以使用第一个参数之外的其他参数传参2、call,apply,bind不同点call,bind的传参都......
  • SpringBoot中@Async异步的使用及异步与同步的区别
    简介在开发过程中,异步是提升系统并发能力的一个重要利器。而spring中的@Async异步注解,使我们能够非常方便地实现方法地异步调用。接下来主要结合以下几个问题来讲述j......
  • 单一JVM同步锁实现
    同步锁实现一、背景在并发场景下,需要单一线程或限定并发数操作某些逻辑,这时候就需要用到一个锁来保证线程安全。二、思路使用ConcurrentHashMap实现,但只支持同一个jvm......
  • 【高精度模组】GPS北斗网络时钟同步发生器
    【高精度模组】GPS北斗网络时钟同步发生器【高精度模组】GPS北斗网络时钟同步发生器京准电子科技官微——ahjzsz该产品专为高性能计算和数据中心各个网络系统之间时钟同......
  • javascript手写树形结构
    constarr1=[{menuId:1,name:"系统管理1",parentMenu:null,},{menuId:2,name:"系统管理2",parentMenu:null,},{......
  • 使用AsyncTask异步加载图片
    主要看看AsyncTask如何使用:MainActivity.java1.publicclassMainActivityextendsActivity{2.privatestaticfinalStringTAG="MainActivity";3.privat......
  • JavaScript文件分片上传,断点续传
    ​前言一、SpringMVC简介1.1、SpringMVC引言为了使Spring有可插入的MVC架构,SpringFrameWork在Spring基础上开发SpringMVC框架,从而在使用Spring进行WEB开发时可以......
  • 传统同步方式面试诸多挑战 如何实现自动化的文件同步?
    大数据、云计算、物联网的发展,使得企业的数据快速大量增长。面对快速变化和增长的庞大数据,如何高效地管理、利用数据对于企业来说至关重要。企业的服务器节点之间、总分支......
  • Javascript-极速入门指南
    内容概要Javascript编程语言JS编程语言简介注释语法引入JS的多种方式结束符号变量与常量定义变量let关键字与var关键字的区别定义常量基本数据类型运算......