所有 JavaScript 回调都是异步的吗?
与普遍看法相反,并非所有 JavaScript 回调都是异步的。例如,Array#sort 和 String#replace 中使用的回调是同步执行的。
异步回调
异步回调是稍后执行的回调,允许其他代码同时运行。通常,异步回调涉及外部资源请求(例如 jQuery AJAX 调用)。
jQuery AJAX 调用
jQuery AJAX 函数可以是同步的也可以是异步的,具体取决于“异步”标志设置。然而,浏览器通常默认对 XMLHttpRequest 对象进行异步操作(在 jQuery AJAX 中使用)。
Node.js 中的异步
在 Node.js 中,异步是通过以下方式引入的特定函数,例如文件 I/O、process.nextTick、setTimeout 和 setInterval。不支持这些函数之外的异步操作。
创建异步函数
在 ECMAScript 6 之前,JavaScript 中的异步函数依赖于主机提供的函数(例如,nextTick Node.js、浏览器中的 setTimeout)。
ECMAScript 6 Promises
ECMAScript 6 引入了 Promise 作为异步编程的语言级概念。附加到 Promise 的回调(通过 then 或 catch)始终会异步调用,即使 Promise 在附加时已经解决。
因此,确保异步回调执行的最佳方法是使用 Promise 而不是直接使用 Promise回调。
以上是JavaScript 回调总是异步的吗?的详细内容。更多信息请关注PHP中文网其他相关文章!