javascript - setImmediate 或 IO 回调会先运行吗?
解决方案
console.log('first'); // logs instantly
setImmediate(() => console.log('immediate')); // will be executed in the next iteration of the event loop.
new Promise((resolve) => { // starts in promise in pending state
console.log('insidePromise');
const data = 'Promise';
resolve(data);
}).then((d) => console.log(d)); // prints after Promise is resolved
输出 -
first
insidePromise
Promise
immediate
当 Promise 被调用时,它开始处于挂起状态并等待解决。
setImmediate - 在处理解析之前在此处触发,因为setImmediate
必须在事件循环中执行。
https://nodejs.dev/learn/understanding-javascript-promises
一旦一个 Promise 被调用,它将以挂起状态开始。这意味着调用函数会继续执行,而 Promise 在它解决之前一直处于挂起状态,向调用函数提供所请求的任何数据。
https://nodejs.dev/learn/understanding-setimmediate
任何作为 setImmediate() 参数传递的函数都是在事件循环的下一次迭代中执行的回调。
推荐阅读
- spring-boot - Kafka Flux 在 Rest Controller 中不起作用
- android - Android Studio:无法在设计视图中看到组件
- wordpress - Woocommerce 从 WP_Query 循环中删除隐藏的产品
- css - 如何在 sass 中动态更改 mixin 函数中的变量?
- php - 从可用于将特定数据插入数据库的选项列表中设置一个选项
- r - ggplot 金字塔只是半个金字塔
- angular - 错误 错误:尝试比较 '[{"opened":"2", "closed":"2", "assigned":"2", "reopen":"1" }]' 时出错。只允许使用数组和可迭代对象
- css - 为什么我的列未对齐?
- android - 游戏完成后插播
- javascript - 基础层更改后的 setDrawingOptions Leaflet Draw