JavaScript 回调:是否异步?
JavaScript 回调并非普遍异步。在某些场景下,例如您提供的 addOne 和 simpleMap 函数的示例,代码会同步运行。
浏览器中的异步 JavaScript
基于回调的 AJAX 函数jQuery 中通常是异步的,因为它们涉及 XHR (XMLHttpRequest) 请求。默认情况下,浏览器中的 XHR 请求是异步的,允许在处理请求时持续执行脚本。
Node.js 中的异步 JavaScript
在 Node.js 中,异步行为通常由输入/输出 (I/O) 操作引起,例如文件 I/O、process.nextTick、setTimeout 和 setInterval。由于与数据库交互涉及底层 I/O 操作,MongoDB/Mongoose 的基于回调的数据库调用是异步的。
预定的异步情况
异步性通常是根深蒂固在环境中。在浏览器中,与 XHR 请求关联的回调函数本质上是异步的。在 Node.js 中,与 I/O 操作相关的回调同样是异步的。
自定义异步函数
无需仅依赖特定环境函数,即可实现异步行为通过利用 ES6 承诺。 Promise 提供了用于定义异步操作的语言级机制。附加到 Promise 的回调函数(通过 then 和 catch)始终异步执行,确保 Promise 后面的代码不会阻塞。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3