respond method
void
respond(})
Sends the HTTP response based on the handlerResult
and terminates the response stream.
If handlerResult
is null
, the response is closed without sending any content, and the status code is set to 204 (No Content).
After the response is sent, the handled
flag is set to true
, indicating that the request has been fully processed.
Implementation
void respond(dynamic handlerResult,
{required void Function(String, String?, H4Event?)? onError,
required Middleware? afterResponse}) {
// Handle Async Handler
if (handlerResult is Future) {
handlerResult
.then((value) => _resolveRequest(this, value))
.onError((error, stackTrace) {
defineErrorHandler(onError ?? defaultErrorMiddleware,
params: params,
error: error.toString(),
trace: stackTrace)(_request);
});
return;
}
// Handle non-async handler.
_resolveRequest(this, handlerResult);
if (afterResponse != null) {
afterResponse(this);
}
}