如何在Golang中进行2次并发网络请求
我有两个功能可以发出网络请求: e、 g: 考虑到它们是两种不同的类型,我不能只使用一个频道。 并行调用的最佳模式是什么:如何在Golang中进行2次并发网络请求,go,Go,我有两个功能可以发出网络请求: e、 g: 考虑到它们是两种不同的类型,我不能只使用一个频道。 并行调用的最佳模式是什么: resultA, err := request1() resultB, err := request2() 使用sync.WorkGroup var wg sync.WorkGroup wg.Add(2) var resultA resultTypeA, errA error go func() { resultA, errA = request1() w
resultA, err := request1()
resultB, err := request2()
使用
sync.WorkGroup
var wg sync.WorkGroup
wg.Add(2)
var resultA resultTypeA, errA error
go func() {
resultA, errA = request1()
wg.Done()
}()
var resultB resultTypeB, errB error
go func() {
resultB, errB = request2()
wg.Done()
}()
wg.Wait()
if errA != nil {
return errA
}
if errB != nil {
return errB
}
您可以只创建两个goroutine使它们并发。您能提供一个错误处理的示例吗?e、 g.如果其中任何一个返回错误,terminate@samol您可以在
wg.Wait()
之后检查errA
和errB
,并在出现错误时执行所需操作。
var wg sync.WorkGroup
wg.Add(2)
var resultA resultTypeA, errA error
go func() {
resultA, errA = request1()
wg.Done()
}()
var resultB resultTypeB, errB error
go func() {
resultB, errB = request2()
wg.Done()
}()
wg.Wait()
if errA != nil {
return errA
}
if errB != nil {
return errB
}