mirror of
https://github.com/nuxt/nuxt.git
synced 2025-01-18 09:25:54 +00:00
docs: add a section about event.waitUntil
(#29583)
This commit is contained in:
parent
9e03a4120c
commit
a60d7fd51c
@ -363,6 +363,26 @@ Headers that are **not meant to be forwarded** will **not be included** in the r
|
|||||||
`transfer-encoding`, `connection`, `keep-alive`, `upgrade`, `expect`, `host`, `accept`
|
`transfer-encoding`, `connection`, `keep-alive`, `upgrade`, `expect`, `host`, `accept`
|
||||||
::
|
::
|
||||||
|
|
||||||
|
### Awaiting Promises After Response
|
||||||
|
|
||||||
|
When handling server requests, you might need to perform asynchronous tasks that shouldn't block the response to the client (for example, caching and logging). You can use `event.waitUntil` to await a promise in the background without delaying the response.
|
||||||
|
|
||||||
|
The `event.waitUntil` method accepts a promise that will be awaited before the handler terminates, ensuring the task is completed even if the server would otherwise terminate the handler right after the response is sent. This integrates with runtime providers to leverage their native capabilities for handling asynchronous operations after the response is sent.
|
||||||
|
|
||||||
|
```ts [server/api/background-task.ts]
|
||||||
|
const timeConsumingBackgroundTask = async () => {
|
||||||
|
await new Promise((resolve) => setTimeout(resolve, 1000))
|
||||||
|
};
|
||||||
|
|
||||||
|
export default eventHandler((event) => {
|
||||||
|
// schedule a background task without blocking the response
|
||||||
|
event.waitUntil(timeConsumingBackgroundTask())
|
||||||
|
|
||||||
|
// immediately send the response to the client
|
||||||
|
return 'done'
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
## Advanced Usage
|
## Advanced Usage
|
||||||
|
|
||||||
### Nitro Config
|
### Nitro Config
|
||||||
|
Loading…
Reference in New Issue
Block a user