func VideoClearExecutor(dc dataChan) error {
errMap := &sync.Map{}
// ......
errMap.Range(func(k, v interface{}) bool {
err = v.(error)
if err != nil {
return false
}
return true
})
// ......
}
艾文西老师,我感觉把 errMap 挪到函数体外作为包级变量使用好一些,
否则 errMap.Range 每次调用的都是局部创建的新的 errMap ,
那么之前的 goroutine 就算有 error 也不是往当前这个 map 里面写,
那么 errMap.Range 这段逻辑也就没什么用了。