文章目录
概要
go的异步请求
sync.WaitGroup
异步请求使用方式
//定义
wg := sync.WaitGroup
// error chan
errCh := make(chan error)
//
wgChDone := make(chan int)
//在使用add方法,添加一个标记
wg.add(1)
//异步执行
go func(){
//方法执行完,执行Done
defer wg.Done()
// do something
//执行报错
errCh <- err
}
go func() {
wg.Wait()
close(wgChDone)
}()
select {
case <- wgChDone:
//上面正常执行结束,处理后续逻辑
case err := <- errCh :
// 处理异常请求
}
小结
以上代码适用于restapi请求处理,提升一个接口封装多个接口时的效率