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
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[]
closedAtDec 10, 2025, 6:14 PM

Resolve pending VDOM update promises when a component is implicitly mounted

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.