我有一个函数(sendAll
),如果kgo.Produce
(docs here)出错了,我想让它返回error
。我怎样才能让它停止循环并返回错误呢?
func (k *buffer) sendAll() error {
for _, record := range k.buffer {
kgo.Produce(ctx, &record, func(r *kgo.Record, err error) {
if err != nil {
fmt.Printf("record had a produce error: %v\n", err)
// How do I return an error here and exit sendAll function?
}
})
}
return nil
}
2条答案
按热度按时间rkttyhzu1#
在我看来,您可以通过对“局部”变量进行简单的检查来逃避责任。
jdgnovmf2#
正确的方法是在循环中返回错误。