如何深入探讨JavaScript的三大难题:异步操作与单线程限制?
- 内容介绍
- 文章标签
- 相关推荐
本文共计807个文字,预计阅读时间需要4分钟。
目录- 单线程- 异步- 异步- 但在开发中,我们经常遇到请求网络,或定时任务的情况,如等待网络请求结束或定时任务结束后再去做其他事情,这样页面就会卡住,所以JavaScript有异步。
目录
- 单线程
- 异步
单线程
但是我们在开发中,遇到请求网络,或者定时任务的时候,如果等待网络请求结束或者定时任务结束的时候再去做其他事情,这样页面就会卡住,所以js有异步机制解决这个问题。
异步
异步的特点是不会阻塞后面的代码执行,当同步任务执行完毕之后,再执行异步任务。相对的,同步会阻止代码执行。异步任务的应用主要有网络请求和定时任务。
异步是通过callback的方式实现的,在callback里面执行异步执行的代码,但是有一些场景比如我们有三个网络请求abc需要依次执行,在a的回调里发起b请求,在b的回调里发起c请求,这样会造成一种很混乱的写法,称之为回调地狱,可以试想一下,如果页面逻辑过于复杂,需要依次调用10个接口,那么代码的可读性会非常非常差,我们如果看到了别人的这种代码难免内心奔跑一万只神兽。
本文共计807个文字,预计阅读时间需要4分钟。
目录- 单线程- 异步- 异步- 但在开发中,我们经常遇到请求网络,或定时任务的情况,如等待网络请求结束或定时任务结束后再去做其他事情,这样页面就会卡住,所以JavaScript有异步。
目录
- 单线程
- 异步
单线程
但是我们在开发中,遇到请求网络,或者定时任务的时候,如果等待网络请求结束或者定时任务结束的时候再去做其他事情,这样页面就会卡住,所以js有异步机制解决这个问题。
异步
异步的特点是不会阻塞后面的代码执行,当同步任务执行完毕之后,再执行异步任务。相对的,同步会阻止代码执行。异步任务的应用主要有网络请求和定时任务。
异步是通过callback的方式实现的,在callback里面执行异步执行的代码,但是有一些场景比如我们有三个网络请求abc需要依次执行,在a的回调里发起b请求,在b的回调里发起c请求,这样会造成一种很混乱的写法,称之为回调地狱,可以试想一下,如果页面逻辑过于复杂,需要依次调用10个接口,那么代码的可读性会非常非常差,我们如果看到了别人的这种代码难免内心奔跑一万只神兽。

