是否有等待两个通道结束的模式选择? (为了满足单个选择条件)
例如:
package main
import (
"fmt"
)
func main() {
aChan, bChan := make(chan type), make(chan type)
go myFunc(aChan, bChan, errChan /*...*/)
select {
case a, b := <-aChan, <-bChan: // This doesn't work
fmt.Printf("%v, %v\n", a, b)
case err := <- errChan:
panic(err)
}
}
我要解决的问题是在goroutine中运行一堆数据库查询,并监听它们的结果通道以完成操作,然后加载带有错误或结果的服务器响应结构。
select {
case a := <- aChan:
fmt.Printf("a: %v\n", a)
case b := <- bChan:
fmt.Printf("b: %v\n", b)
case err := <- errChan:
panic(err)
}