Wie kann ich einen Fehler von Inside Promise zurückgeben?

WBOY
Freigeben: 2024-02-09 17:03:08
nach vorne
965 Leute haben es durchsucht

Wie kann ich einen Fehler von Inside Promise zurückgeben?

Beim Schreiben von Code müssen wir uns häufig mit möglichen Fehlersituationen auseinandersetzen. Manchmal müssen wir jedoch einen Fehler innerhalb einer Funktion oder Methode zurückgeben, damit dieser beim Aufruf der Funktion oder Methode korrekt behandelt werden kann. In PHP haben wir mehrere Möglichkeiten, dies zu erreichen. In diesem Artikel wird erläutert, wie Fehler innerhalb von Versprechen zurückgegeben werden, um Entwicklern dabei zu helfen, Fehlersituationen besser zu bewältigen.

Frageninhalt

Ich habe eine Funktion (sendall),如果 kgo.produce (文档在这里)中发生错误,我想让它返回 error) Wie schaffe ich es, die Schleife zu stoppen und einen Fehler zurückzugeben?

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
}
Nach dem Login kopieren

Workaround

Mir scheint, dass man damit durchkommt, indem man einfach die „lokale“ Variable überprüft.

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
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich einen Fehler von Inside Promise zurückgeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!