关于 ctx.state.user 并发的处理的一个问题?

来源:8-7 自己编写 Koa 中间件实现用户认证与授权

Kysonleung

2021-06-12

图片描述
我看 ctx 应该是相当于一个全局的变量,以 JS 单线程的特性来看,如果同时并发有一千个请求进来,对 ctx.state.user 赋值,到最后是不是这个值是不可预测的?而且 auth 作为一个异步的中间件,在它内部处理其他中间件的时候 auth 会让出当前 CPU 的资源,这个时候如果另一个请求进来了,完全有时间去修改 ctx.state.user 里面的值。所以在高并发的情景先对 ctx.state.user 赋值,它最终的结果究竟是什么?

写回答

1回答

lewis

2021-06-13

ctx不是单例,你说的这个问题不存在。

0
0

Node.js仿知乎服务端-深入理解RESTful API

Koa2+MongoDB+Postman+JWT+阿里云

952 学习 · 331 问题

查看课程