runFinalizers method

Future<void> runFinalizers([
  1. RequestContext? request
])

Runs Angel.responseFinalizers for this response, at most once.

Buffered responses run them once the handler is done, so they can read and rewrite buffer. Unbuffered responses run them just before headers are sent: finalizers can still change headers, statusCode and cookies, but no body has been written yet. Finalizers that need the body should check isBuffered. They must not call close.

Implementation

Future<void> runFinalizers([RequestContext? request]) async {
  var req = request ?? correspondingRequest;
  var finalizers = app?.responseFinalizers;
  if (_finalizersStarted ||
      req == null ||
      finalizers == null ||
      finalizers.isEmpty) {
    return;
  }
  _finalizersStarted = true;
  for (var finalizer in List.of(finalizers)) {
    await finalizer(req, this);
  }
}