* Wait for the viewer to report its current state (page, zoom, selection, …) * as a JSON string. Same timeout/abort semantics as waitForSaveData.
( requestId: string, signal?: AbortSignal, )
| 317 | * as a JSON string. Same timeout/abort semantics as waitForSaveData. |
| 318 | */ |
| 319 | function waitForViewerState( |
| 320 | requestId: string, |
| 321 | signal?: AbortSignal, |
| 322 | ): Promise<string> { |
| 323 | return new Promise<string>((resolve, reject) => { |
| 324 | const settle = (v: string | Error) => { |
| 325 | clearTimeout(timer); |
| 326 | signal?.removeEventListener("abort", onAbort); |
| 327 | pendingStateRequests.delete(requestId); |
| 328 | v instanceof Error ? reject(v) : resolve(v); |
| 329 | }; |
| 330 | const onAbort = () => settle(new Error("interact request cancelled")); |
| 331 | const timer = setTimeout( |
| 332 | () => settle(new Error("Timeout waiting for viewer state")), |
| 333 | GET_PAGES_TIMEOUT_MS, |
| 334 | ); |
| 335 | signal?.addEventListener("abort", onAbort); |
| 336 | pendingStateRequests.set(requestId, settle); |
| 337 | }); |
| 338 | } |
| 339 | |
| 340 | interface QueueEntry { |
| 341 | commands: PdfCommand[]; |
no test coverage detected
searching dependent graphs…