Skip to content

Instantly share code, notes, and snippets.

@jasonbyrne
Created February 24, 2021 16:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jasonbyrne/8ecb51ac8f3b020f7697258de7e4a60e to your computer and use it in GitHub Desktop.
Save jasonbyrne/8ecb51ac8f3b020f7697258de7e4a60e to your computer and use it in GitHub Desktop.
Very basic POC to test CloudFlare workers with KV and waitUntil
addEventListener('fetch', event => event.respondWith(handleRequest(event)));
async function handleRequest(event) {
const request = event.request;
// Parse query string
const { searchParams } = new URL(request.url);
let qsName = searchParams.get('name');
// If name in query string, add it to kv async
if (qsName) {
// Run this async to response, but wait for it to complete before terminating
event.waitUntil((() => new Promise((resolve) => {
// Wait for 3 seconds just to cause a delay
setTimeout(async () => {
await MyFirstKv.put("name", qsName);
resolve();
}, 3000);
}))());
}
// Get current name from KV
let kvName = await MyFirstKv.get("name") || "world";
const response = new Response(`Hello, ${kvName}!`, {
headers: { "content-type": "text/plain" }
});
// Send response
return response;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment