Skip to content

Commit cef22bb

Browse files
committed
fix: use PromiseWithResolvers
1 parent abec47d commit cef22bb

2 files changed

Lines changed: 4 additions & 15 deletions

File tree

examples/react/batching/src/character-loader.ts

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,19 +10,8 @@ interface CharacterT {
1010
image: string
1111
}
1212

13-
const createDeferred = <T>() => {
14-
let resolve!: (value: T) => void
15-
let reject!: (reason?: unknown) => void
16-
const promise = new Promise<T>((res, rej) => {
17-
resolve = res
18-
reject = rej
19-
})
20-
21-
return { promise, resolve, reject }
22-
}
23-
2413
type CharacterRequest = {
25-
deferred: ReturnType<typeof createDeferred<CharacterT | null>>
14+
deferred: PromiseWithResolvers<CharacterT | null>
2615
id: number
2716
}
2817

@@ -63,7 +52,7 @@ const characterBatcher = new AsyncBatcher<CharacterRequest>(
6352
)
6453

6554
export const loadCharacter = (id: number) => {
66-
const deferred = createDeferred<CharacterT | null>()
55+
const deferred = Promise.withResolvers<CharacterT | null>()
6756

6857
characterBatcher.addItem({ deferred, id })
6958

examples/react/batching/tsconfig.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
{
22
"compilerOptions": {
3-
"target": "ES2020",
3+
"target": "ESNext",
44
"useDefineForClassFields": true,
5-
"lib": ["ES2020", "DOM", "DOM.Iterable"],
5+
"lib": ["ES2020", "DOM", "DOM.Iterable", "ESNext"],
66
"module": "ESNext",
77
"skipLibCheck": true,
88

0 commit comments

Comments
 (0)