auch Wenn Sie die callee
Funktion aufrufen, ist es ein Future
zurückgibt. Die await
wartet dann darauf, dass diese Zukunft abgeschlossen wird. Wenn Sie nicht auf die Zukunft warten, wird es irgendwann fertig, aber Ihre caller
Funktion wird nicht blockiert, wenn Sie darauf warten. So können Sie einfach tun:
caller() {
callee(); // Ignore returned Future (at your own peril).
}
Wenn Sie das tun, sollten Sie sich bewusst sein, was passiert, wenn callee
mit einem Fehler fehlschlägt. Das würde die zurückgegebene Zukunft mit diesem Fehler abschließen, und wenn Sie nicht auf die Zukunft hören, wird dieser Fehler als "nicht abgefangen" betrachtet. Nicht erfasste Fehler werden von der aktuellen Zone
behandelt, und das Standardverhalten verhält sich wie ein unübertroffener Fehler auf oberster Ebene, der Ihr Isolat möglicherweise umbringt.
Also, denken Sie daran, den Fehler zu behandeln.
Wenn callee
kann nicht fehlschlagen, groß, du bist fertig (es sei denn, es scheitert sowieso, dann wirst du Spaß haben, das zu debuggen).
können Sie den Fehler behandeln lokal:
caller() {
callee().catchError((e, s) {
logErrorSomehow(e, s);
});
}
oder Sie können eine Fehlerbehandlungszone installieren und Ihren Code in das auszuführen:
runZoned(() {
myProgram();
}, onError: logErrorSomehow);
Siehe runZoned Funktion und es ist onError
Parameter.