js异步编程

本文介绍了JavaScript的单线程特性及其异步执行机制,包括同步模式和异步模式。同步模式按照代码顺序执行,可能导致阻塞。异步执行则通过回调函数避免阻塞,实现任务的并发。事件循环和消息队列是JavaScript实现异步的关键,它们确保了代码的有序执行。回调函数作为异步编程的基础,用于定义耗时任务的后续逻辑。
摘要由CSDN通过智能技术生成

单线程JavaScript异步方案

我们要知道,js的运行环境都是以单线模式去执行的js代码。
注:
1)javascript是单线程的,浏览器并不是单线程的;
2)javascrpt调用的某些内部的api并不是单线程的,例如倒计时器,内部会有个单独的线程去负责倒数;
3)我们指定单线程是指的执行代码的单线程;
4)运行环境提供的API是以同步或异步模式的方式工作,同步模式的API:代码执行完代码才会往下走,异步模式的API下达这个任务开启的指令,不会等待任务结束的,会继续往下走。

采用单线程模式工作原因:
最早javascript是运行在浏览器上的脚本语言,目的实现页面上的动态交互,而实现页面交互核心就是dom操作,这也就决定了必须使用单线程模型,否则会出现复杂的线程同步问题;这里的单线程指的是:js执行环境中负责执行代码的线程只有一个;
优点:更安全更简单
缺点:如果有耗时操作,那么后面的任务排队就会等待时间延长(耗时阻塞),出现假死的情况
为了解决这个问题,JavaScript将任务的执行模式分为了两种:
同步模式
异步模式
es2015中的promise异步编程方案、宏/微
es2017中的async/await

同步模式

排队执行,和代码书写顺序一致
js引擎会将全部的代码加载进来,然后在调用栈call stack(js在执行引擎中维护了一个正在执行的工

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值