JS异步编程

1.进程和线程的区别

进程是程序的一次执行过程,是一个动态概念,是程序在执行过程中分配和管理资源的基本单位

线程是CPU调度和分派的基本单位,它可与同属于一个进程的其他线程共享进程所拥有的全部资源。

1.一个程序至少有一个进程,一个进程至少有一个线程

2.线程的划分尺度小于进程,使得多线程程序的并发性高

3.进程之间内存无法共享。多个线程执行可以共享内存

4.线程不能独立运行,必须依存在进程中

2.js异步编程

因为js是单线程的,所以js的代码都是串行的,前面没有执行完后面的就不能执行

js的单线程,与它的用途有关:作为浏览器脚本语言,js的主要用途是与用户互动以及操作DOM,这决定了它只能是单线程的,否则会带来很复杂的同步问题

除了“事件绑定的函数”和“回调函数”以外都是同步代码

程序执行顺序:程序运行会从上往下依次执行所有的同步代码,在执行过程中如果遇到异步代码会先将异步代码放到事件循环中,当所有的同步代码执行完毕后,js会不断检测事件循环中的异步代码是否满足条件,一旦满足条件就会执行满足条件的异步代码。

在开发中为了保障异步代码的执行顺序,那么就会出现回调函数层层嵌套,如果嵌套的层数过多,就会导致代码的阅读性、可维护性大大降低

promise是ES6中新增的异步编程解决方案, 在代码中的表现是一个对象

promise对象可以将异步操作以同步流程来表示, 避免了回调函数层层嵌套问题,避免了回调地狱问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值