Created
February 24, 2021 16:46
-
-
Save jasonbyrne/8ecb51ac8f3b020f7697258de7e4a60e to your computer and use it in GitHub Desktop.
Very basic POC to test CloudFlare workers with KV and waitUntil
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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