首页  >  文章  >  web前端  >  尽管缺乏内置的异步性,Javascript 如何实现异步行为?

尽管缺乏内置的异步性,Javascript 如何实现异步行为?

Susan Sarandon
Susan Sarandon原创
2024-11-12 16:00:03955浏览

How does Javascript achieve asynchronous behavior despite lacking built-in asynchronicity?

为什么在 Javascript 中使用异步?

在开发过程中,您经常会遇到术语“回调函数”。这些函数异步运行,这意味着它们在程序的标准同步流程之外执行。但是具体是什么触发了这种异步行为呢?

仅靠语法是不够的

在 javascript 中,回调函数的语法并不表示异步。同步和异步回调都有相似的结构。

文档是关键

确定函数是同步还是异步调用回调的唯一确定方法是查阅文档。如果没有文档,您也可以运行一个简单的测试来确定其行为。

实现异步:两条路径

Javascript 从根本上缺乏内置的异步性。为了实现这一目标,开发人员有两种选择:

  • 利用 setTimeout 或 Web Workers 等外部异步函数。
  • 将执行委托给 C 代码。

< ;h3>事件循环的作用

事件循环是 javascript 架构的重要组成部分。它负责启动异步执行并处理网络 I/O 等事件。通过使用像 select() 这样的 I/O 原语,事件循环可以有效地等待多个 I/O 操作,而无需创建额外的线程。

select() 和回调调用

当 I/O 操作完成时,select() 通知解释器。然后解释器识别与相关 I/O 通道关联的回调并执行它。此机制还支持 setTimeout 和 setInterval 的功能。

其他功能:I/O 线程

现代浏览器和 Node.js 已对该事件进行了扩展循环模型。它们合并了线程来处理基于文件的 I/O。完成后,这些线程与主事件循环通信以触发适当的回调执行。

结论

异步执行是事件循环和基于线程所固有的I/O 管理。了解这些底层机制可以增强对 Javascript 异步编程和相关技术的理解。

以上是尽管缺乏内置的异步性,Javascript 如何实现异步行为?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn