为什么node.js Express框架在设置会话variables时不使用callback?

我已经注意到,为了在会话中存储一个值,您只需调用req.session.key = value,而无需指定callback。 我使用connect-mysql模块将mysql设置为会话存储适配器。 所以我想知道每次我保存一个值的会话,它正在更新的分贝,不应该有一个callback与此相关? 然而,在我看来,人们正在愉快地同步使用它。 有人可以解释为什么这种情况? 谢谢。

session中间件实际上每个请求只与数据存储实际交互两次,而不是立即与每个更改进行交互:

  1. 使用Store#get()在请求开始时批量检索Session 。 ( 来源 )
  2. 使用Store#set() (通过Session#save() )在请求结束时将会话持久化。 ( 来源 )

在这些步骤之间,可以同步完成对session更改。 它们应该在res.end()或类似的( res.render()res.json()等)被调用之前完成。