next
Version:
The React Framework
48 lines (47 loc) • 2.2 kB
TypeScript
export declare enum RenderStage {
Before = 1,
EarlyStatic = 2,
Static = 3,
EarlyRuntime = 4,
Runtime = 5,
Dynamic = 6,
Abandoned = 7
}
export type AdvanceableRenderStage = RenderStage.Static | RenderStage.EarlyRuntime | RenderStage.Runtime | RenderStage.Dynamic;
export declare class StagedRenderingController {
private abortSignal;
private abandonController;
private shouldTrackSyncIO;
currentStage: RenderStage;
syncInterruptReason: Error | null;
staticStageEndTime: number;
runtimeStageEndTime: number;
private staticStageListeners;
private earlyRuntimeStageListeners;
private runtimeStageListeners;
private dynamicStageListeners;
private staticStagePromise;
private earlyRuntimeStagePromise;
private runtimeStagePromise;
private dynamicStagePromise;
constructor(abortSignal: AbortSignal | null, abandonController: AbortController | null, shouldTrackSyncIO: boolean);
onStage(stage: AdvanceableRenderStage, callback: () => void): void;
shouldTrackSyncInterrupt(): boolean;
syncInterruptCurrentStageWithReason(reason: Error): void;
getSyncInterruptReason(): Error | null;
getStaticStageEndTime(): number;
getRuntimeStageEndTime(): number;
private abandonRender;
advanceStage(stage: RenderStage.EarlyStatic | RenderStage.Static | RenderStage.EarlyRuntime | RenderStage.Runtime | RenderStage.Dynamic): void;
/** Fire the `onStage` listeners for the static stage and unblock any promises waiting for it. */
private resolveStaticStage;
/** Fire the `onStage` listeners for the early runtime stage and unblock any promises waiting for it. */
private resolveEarlyRuntimeStage;
/** Fire the `onStage` listeners for the runtime stage and unblock any promises waiting for it. */
private resolveRuntimeStage;
/** Fire the `onStage` listeners for the dynamic stage and unblock any promises waiting for it. */
private resolveDynamicStage;
private getStagePromise;
waitForStage(stage: AdvanceableRenderStage): Promise<void>;
delayUntilStage<T>(stage: AdvanceableRenderStage, displayName: string | undefined, resolvedValue: T): Promise<T>;
}