Context (ctx)
The Context API provides methods to manage the lifecycle of your Worker or Durable Object.
Context is exposed via the following places:
- As the third parameter in all handlers, including the
fetch()handler. (fetch(request, env, ctx)) - As a class property of the
WorkerEntrypointclass
waitUntil
ctx.waitUntil() extends the lifetime of your Worker, allowing you to perform work without blocking returning a response, and that may continue after a response is returned. It accepts a Promise, which the Workers runtime will continue executing, even after a response has been returned by the Worker’s handler.
waitUntil is commonly used to:
- Fire off events to external analytics providers. (note that when you use Workers Analytics Engine, you do not need to use
waitUntil) - Put items into cache using the Cache API
You can call waitUntil() multiple times. Similar to Promise.allSettled, even if a promise passed to one waitUntil call is rejected, promises passed to other waitUntil() calls will still continue to execute.
For example:
passThroughOnException
The passThroughOnException method allows a Worker to
fail open
, and pass a request through to an origin server when a Worker throws an unhandled exception. This can be useful when using Workers as a layer in front of an existing service, allowing the service behind the Worker to handle any unexpected error cases that arise in your Worker.