在編寫程式碼時,我們經常需要處理一些可能發生錯誤的情況。然而,有時我們需要在函數或方法內部傳回錯誤,以便在呼叫該函數或方法時能夠正確處理錯誤。在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 }
以上是如何從承諾內部傳回錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!