Bei Study anmelden

Diese Seite ist der öffentliche eMedys-Auftritt. Dein Konto und deine privaten Inhalte laufen auf Study; die Anmeldung öffnet sich dort in einem eigenen Fenster.

Geplant ist noch nicht abgeschlossen

Besitz einer Coroutine und Behandlung des späteren Ergebnisses trennen.

Eine Coroutine beschreibt asynchrone Arbeit; sie ist durch ihre Erzeugung noch nicht erfolgreich ausgeführt. Vor einer erfolgreichen Übergabe muss der Aufrufer mit ihr umgehen. Im betrachteten Helfermuster wird sie geschlossen, wenn keine Schleife verfügbar ist oder die Planung scheitert. Nach akzeptierter Übergabe gehört ihre Ausführung der Ereignisschleife. Das zurückgegebene Future repräsentiert den späteren Abschluss und kann ein Ergebnis oder einen Fehler liefern. Auch ein Timeout beim Warten bedeutet nicht von selbst, dass die Arbeit beendet ist. Vermeide eine zweite Planung als vermeintlichen Ersatz, solange die erste Arbeit noch laufen könnte.

Ein Beispiel

Der fiktive Indexer erzeugt Arbeit für 'Holzmodell'. Ohne Schleife meldet sein Helfer None und schließt die unübergebene Coroutine. Mit akzeptierter Planung erhält der Aufrufer ein Future. Scheitert die Verarbeitung später an ungültigen Modelldaten, muss er diesen Fehler am Future behandeln; die erfolgreiche Übergabe war keine Erfolgsmeldung für den Index.

Mit meinem Konto üben →

Alle Lernwege