多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
> # Go语言的context包 - [Go语言的context包从放弃到入门](https://www.cnblogs.com/chenqionghe/p/14107790.html) --- >### content 包 - 最为重要的就是3个基础能力,取消、超时、附加值 ``` // go 开协程不像其它语言一样, 开的时候会返回一个id,通过id去销毁 // 用法:返回一个子Context和主动取消函数(抛异常的时候,主动调用cancel方法取消) // WithDeadline 截止时间 ctx, cancel := context.WithCancel(parentCtx) ``` ``` // 用法:返回一个子Context(会在一段时间后自动取消),主动取消函数(防止一个方法执行时间过长) ctx := context.WithTimeout(parentCtx, 5*time.Second) ``` ``` // 用法: 传入父Context和(key, value),相当于存一个kv (参数的传递) ctx := context.WithValue(parentCtx, "name", 123) // 用法:将key对应的值取出 v := ctx.Value("name") ``` --- - 在中间件里处理Token,获取用户信息, 把用户信息存储到context里