unstable_after
unstable_after
ermöglicht es Ihnen, Arbeiten zu planen, die nach Abschluss einer Antwort (oder Vorrendering) ausgeführt werden. Dies ist nützlich für Aufgaben und andere Nebeneffekte, die die Antwort nicht blockieren sollten, wie Logging und Analysen.
Es kann in Server-Komponenten (einschließlich generateMetadata
), Server-Aktionen, Route-Handlern und Middleware verwendet werden.
Die Funktion akzeptiert einen Callback, der nach Abschluss der Antwort (oder Vorrendering) ausgeführt wird:
Hinweis:
unstable_after
ist keine Dynamische API, und sein Aufruf führt nicht dazu, dass eine Route dynamisch wird. Wenn es innerhalb einer statischen Seite verwendet wird, wird der Callback zur Bauzeit ausgeführt oder wenn eine Seite neu validiert wird.
Referenz
Parameter
- Eine Callback-Funktion, die nach Abschluss der Antwort (oder Vorrendering) ausgeführt wird.
Dauer von Serverless-Funktionen
unstable_after
wird für die Standard- oder konfigurierte maximale Dauer einer Serverless-Funktion der Plattform ausgeführt. Falls Ihre Plattform dies unterstützt, können Sie den Timeout-Grenzwert mithilfe der maxDuration
Route-Segment-Konfiguration festlegen.
Hinweise
unstable_after
wird auch ausgeführt, wenn die Antwort nicht erfolgreich abgeschlossen wurde, einschließlich wenn ein Fehler geworfen odernotFound
oderredirect
aufgerufen wird.- Sie können React
cache
verwenden, um Funktionen zu deduplizieren, die innerhalb vonunstable_after
aufgerufen werden. cookies
können innerhalb vonunstable_after
nicht gesetzt werden, da die Antwort bereits gesendet wurde.- Dynamische APIs können nicht innerhalb von
unstable_after
aufgerufen werden. Rufen Sie sie außerhalb vonunstable_after
auf und verwenden Sie das von ihnen zurückgegebene Objekt. unstable_after
kann in anderenunstable_after
-Aufrufen verschachtelt werden. Sie können beispielsweise Utility-Funktionen erstellen, dieunstable_after
-Aufrufe umschließen, um zusätzliche Funktionalität hinzuzufügen.
Alternativen
Der Anwendungsfall für unstable_after
besteht darin, Sekundäraufgaben zu verarbeiten, ohne die primäre Antwort zu blockieren. Es ähnelt der Verwendung von waitUntil()
der Plattform oder dem Entfernen von await
von einem Promise, unterscheidet sich aber wie folgt:
waitUntil()
: akzeptiert ein Promise und reiht eine Aufgabe in die Warteschlange ein, die während des Lebenszyklus der Anfrage ausgeführt wird, wohingegenunstable_after
einen Callback akzeptiert, der nach Abschluss der Antwort ausgeführt wird.- Entfernen von
await
: beginnt während der Antwort mit der Ausführung und verwendet Ressourcen. Es ist auch in Serverless-Umgebungen nicht zuverlässig, da die Funktion die Berechnung sofort nach dem Senden der Antwort stoppt und möglicherweise die Aufgabe unterbricht.
Wir empfehlen die Verwendung von unstable_after
, da es entwickelt wurde, um andere Next.js-APIs und -Kontexte zu berücksichtigen.
Versionshistorie | Beschreibung |
---|---|
v15.0.0-rc | unstable_after eingeführt. |