MCPcopy Index your code
hub / github.com/UI5/webcomponents / scheduleRenderTask

Function scheduleRenderTask

packages/base/src/Render.ts:74–102  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

72 * Schedules a rendering task, if not scheduled already
73 */
74const scheduleRenderTask = async () => {
75 if (!queuePromise) {
76 queuePromise = new Promise<void>(resolve => {
77 window.requestAnimationFrame(() => {
78 // Render all components in the queue
79
80 // console.log(`--------------------RENDER TASK START------------------------------`); // eslint-disable-line
81 invalidatedWebComponents.process(renderImmediately);
82 // console.log(`--------------------RENDER TASK END------------------------------`); // eslint-disable-line
83
84 // Resolve the promise so that callers of renderDeferred can continue
85 queuePromise = null;
86 resolve();
87
88 // Wait for Mutation observer before the render task is considered finished
89 if (!mutationObserverTimer) {
90 mutationObserverTimer = setTimeout(() => {
91 mutationObserverTimer = undefined;
92 if (invalidatedWebComponents.isEmpty()) {
93 _resolveTaskPromise();
94 }
95 }, 200);
96 }
97 });
98 });
99 }
100
101 await queuePromise;
102};
103
104/**
105 * return a promise that will be resolved once all invalidated web components are rendered

Callers 1

renderDeferredFunction · 0.85

Calls 4

_resolveTaskPromiseFunction · 0.85
requestAnimationFrameMethod · 0.80
processMethod · 0.80
isEmptyMethod · 0.80

Tested by

no test coverage detected