Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Patch v8 to support promise cross-context resolution
``` export default { async fetch(req, env, ctx) { if (globalThis.resolve === undefined) { { const { promise, resolve } = Promise.withResolvers(); setTimeout(resolve, 1000); ctx.waitUntil(promise); } // This is our first request. We will create a new promise and resolver // pair and store it in a global. This request will then wait for the // promise to be resolved before continuing. const { promise, resolve } = Promise.withResolvers(); globalThis.resolve = resolve; globalThis.promise = promise; const ab = AbortSignal.abort(); console.log(ab.aborted); promise.then(() => { // This will be run within the correct IoContext now... try { console.log('test1', ab.aborted); } catch (err) { // We would get here if the IoContext was incorrect because // of the call to ab.aborted console.log(err.message); } }); } else { // This is our second request. We will resolve the promise created in the // first request. console.log('....'); globalThis.resolve(); globalThis.resolve = undefined; console.log('test2'); } return new Response("Hello World\n"); } }; ```
- Loading branch information