【发布时间】:2021-01-21 22:40:47
【问题描述】:
我正在制作一个 Express 应用程序,我打算使用 setTimeout 在一定时间后使与第三方 API 一起使用的访问令牌无效。我认为它可能不起作用,因为像 setTimeout 这样的异步函数被推送到事件队列中,并且在其他所有东西都完成运行之前不会运行。 Express 应用程序(我假设)一直在运行,因为它一直在监听请求,所以我认为由于程序永远不会完成,所以 setTimeout 永远不会运行。但 setTimeout 运行良好且准时。
这怎么可能? Express 的监听部分是否有非 JS 的东西,还是我误解了 async 和事件队列?
【问题讨论】:
-
“还是我误解了异步和事件队列?” - 是的。
-
请求来自事件队列。所以当它监听请求时它是空闲的,等待请求到达事件队列。如果它们首先出现,它将处理任何其他事件。
标签: javascript node.js express asynchronous settimeout