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 后面的代码不会阻塞。
以上是JavaScript 回调何时异步?的详细内容。更多信息请关注PHP中文网其他相关文章!