Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

再认识JS中的异步 #14

Open
791045873 opened this issue Mar 5, 2019 · 0 comments
Open

再认识JS中的异步 #14

791045873 opened this issue Mar 5, 2019 · 0 comments

Comments

@791045873
Copy link
Owner

最初对于JS中异步概念的了解仅局限于ajax与定时器。知道其与同步代码的区别,明白在浏览器中为什么需要异步,以及定时器的时间一点都不准时这些零零碎碎的知识点。
之后又了解到了es6中promise的概念,知道了还有另一种调用异步的方式。也顺带知道了宏任务与微任务的差异。可是,对于宏任务与微任务的理解也仅仅止步于差异在何处、eventLoop是什么样的。并没有真正认识到二者的实质区别。今天学习了winter的重学前端里的相关文章,对于二者有了更深刻的认识。

即:
由宿主调用的异步行为是宏任务。
由JS引擎调用的异步行为是微任务。
而eventLoop正是宿主对于异步行为的处理。

ajax与定时器这样的api,正是宿主提供给开发者使用的,我们在JS里调用他们,即是在通知浏览器去真正的触发该行为。
而promise才是JS引擎本身可以完成的工作。
JS只能处理宏任务内的事情,而宿主可以处理宏任务之间的关系。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant