Directly import `waitUntil` in Workers for easily spawning background tasks
You can now import waitUntil
from cloudflare:workers
to extend your Worker's execution beyond the request lifecycle from anywhere in your code.
Previously, waitUntil
could only be accessed through the execution context (ctx
) parameter passed to your Worker's handler functions. This meant that if you needed to schedule background tasks from deeply nested functions or utility modules, you had to pass the ctx
object through multiple function calls to access waitUntil
.
Now, you can import waitUntil
directly and use it anywhere in your Worker without needing to pass ctx
as a parameter:
import { waitUntil } from "cloudflare:workers";
export function trackAnalytics(eventData) { const analyticsPromise = fetch("https://analytics.example.com/track", { method: "POST", body: JSON.stringify(eventData), });
// Extend execution to ensure analytics tracking completes waitUntil(analyticsPromise);}
This is particularly useful when you want to:
- Schedule background tasks from utility functions or modules
- Extend execution for analytics, logging, or cleanup operations
- Avoid passing the execution context through multiple layers of function calls
import { waitUntil } from "cloudflare:workers";
export default { async fetch(request, env, ctx) { // Background task that should complete even after response is sent cleanupTempData(env.KV_NAMESPACE); return new Response("Hello, World!"); }};
function cleanupTempData(kvNamespace) { // This function can now use waitUntil without needing ctx const deletePromise = kvNamespace.delete("temp-key"); waitUntil(deletePromise);}
For more information, see the waitUntil
documentation.
Was this helpful?
- Resources
- API
- New to Cloudflare?
- Products
- Sponsorships
- Open Source
- Support
- Help Center
- System Status
- Compliance
- GDPR
- Company
- cloudflare.com
- Our team
- Careers
- © 2025 Cloudflare, Inc.
- Privacy Policy
- Terms of Use
- Report Security Issues
- Trademark
-