We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 8923272 commit 75d5fe3Copy full SHA for 75d5fe3
1 file changed
text/0957-modernized-scheduler.md
@@ -456,6 +456,30 @@ class extends Component {
456
}
457
```
458
459
+an example of building a cancellation primitive
460
+```ts
461
+const cbs = new Map();
462
+
463
+function renderWithCancel(fn) {
464
+ let cancel = getToken();
465
+ cbs.add(cancel, fn);
466
467
+ scheduleRender(cancel, fn);
468
+ return cancel;
469
+}
470
471
+async function scheduleRender(cancel, fn) {
472
+ await render();
473
+ if (!cbs.has(cancel)) return;
474
+ cbs.get(cancel)();
475
476
477
+function cancelRender(token) {
478
+ cbs.delete(token);
479
480
+```
481
482
483
Libraries or the framework may desire to provide sugar for automated cleanup,
484
and can do so over this much simpler primitive.
485
0 commit comments