ToB企服应用市场:ToB评测及商务社交产业平台
标题:
Go语言 context包源码学习
[打印本页]
作者:
去皮卡多
时间:
2022-9-16 17:16
标题:
Go语言 context包源码学习
你必须非常努力,才能看起来毫不费力!
微信搜索公众号[ 漫漫Coding路 ],一起From Zero To Hero !
前言
日常 Go 开发中,Context 包是用的最多的一个了,几乎所有函数的第一个参数都是 ctx,那么我们为什么要传递 Context 呢,Context 又有哪些用法,底层实现是如何呢?相信你也一定会有探索的欲望,那么就跟着本篇文章,一起来学习吧!
需求一
开发中肯定会调用别的函数,比如 A 调用 B,在调用过程中经常会设置超时时间,比如超过2s 就不等待 B 的结果了,直接返回,那么我们需要怎么做呢?
[code]// 睡眠5s,模拟长时间操作func FuncB() (interface{}, error) { time.Sleep(5 * time.Second) return struct{}{}, nil}func FuncA() (interface{}, error) { var res interface{} var err error ch := make(chan interface{}) // 调用FuncB(),将结果保存至 channel 中 go func() { res, err = FuncB() ch
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4