如何从承诺内部返回错误?
短信预约 -IT技能 免费直播动态提醒
在编写代码时,我们经常需要处理一些可能出现错误的情况。然而,有时候我们需要在函数或方法内部返回错误,以便在调用该函数或方法时能够正确处理错误。在PHP中,我们有几种方法可以实现这一点。本文将介绍如何从承诺内部返回错误,以帮助开发人员更好地处理错误情况。
问题内容
我有一个函数(sendall
),如果 kgo.produce
(文档在这里)中发生错误,我想让它返回 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
}
解决方法
在我看来,您可以通过简单地检查“本地”变量来摆脱困境。
func (k *buffer) sendAll() error {
var loop error
for _, record := range k.buffer {
if loop != nil {
break
}
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?
loop = err
}
})
}
return loop
}
以上就是如何从承诺内部返回错误?的详细内容,更多请关注编程网其它相关文章!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341