LearnNewsExamplesServices
Frontmatter
id8082
titleResolve pending VDOM update promises when a component is implicitly mounted
stateClosed
labels
bugai
assigneestobiu
createdAtDec 10, 2025, 6:12 PM
updatedAtDec 10, 2025, 6:14 PM
githubUrlhttps://github.com/neomjs/neo/issues/8082
authortobiu
commentsCount0
parentIssuenull
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[]
blocking[]
closedAtDec 10, 2025, 6:14 PM

Resolve pending VDOM update promises when a component is implicitly mounted

Closed v11.17.0 bugai
tobiu
tobiu commented on Dec 10, 2025, 6:12 PM

If a component queues a VDOM update (e.g. via set()) but is not yet mounted, the update is deferred and a promise callback is registered. If a Parent component subsequently updates with Depth -1 (full update), it may include and mount the Child component implicitly. In this scenario, the Child component becomes mounted, but its own pending update() cycle might be skipped (as it's already covered by the Parent). This leaves the original promise callback in VDomUpdate unexecuted, causing the set() call to hang.

Fix: In src/component/Abstract.mjs, update afterSetMounted to call VDomUpdate.executeCallbacks(me.id) when mounted becomes true. This ensures that any pending promises waiting for the mount/update are resolved immediately.

tobiu added the bug label on Dec 10, 2025, 6:12 PM
tobiu added the ai label on Dec 10, 2025, 6:12 PM
tobiu assigned to @tobiu on Dec 10, 2025, 6:13 PM
tobiu referenced in commit 977d7b9 - "Resolve pending VDOM update promises when a component is implicitly mounted #8082" on Dec 10, 2025, 6:13 PM
tobiu closed this issue on Dec 10, 2025, 6:14 PM