Skip to content

Commit 2ee1aff

Browse files
committed
use promise, explain
1 parent 789d16d commit 2ee1aff

File tree

2 files changed

+4
-2
lines changed
  • packages/svelte
    • src/internal/client/dom/elements/bindings
    • tests/runtime-runes/samples/bindings-form-reset

2 files changed

+4
-2
lines changed

packages/svelte/src/internal/client/dom/elements/bindings/shared.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,9 @@ export function listen_to_event_and_reset_event(element, event, handler, on_rese
5757
document.addEventListener(
5858
'reset',
5959
(evt) => {
60-
requestAnimationFrame(() => {
60+
// Needs to happen one tick later or else the dom properties of the form
61+
// elements have not updated to their reset values yet
62+
Promise.resolve().then(() => {
6163
if (!evt.defaultPrevented) {
6264
for (const e of /**@type {HTMLFormElement} */ (evt.target).elements) {
6365
// @ts-expect-error

packages/svelte/tests/runtime-runes/samples/bindings-form-reset/_config.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ export default test({
1010
);
1111

1212
await target.querySelector('button')?.click();
13-
await new Promise((r) => requestAnimationFrame(r));
13+
await Promise.resolve();
1414
assert.htmlEqual(
1515
p?.innerHTML || '',
1616
`{"text":"","checkbox":false,"radio_group":null,"checkbox_group":[],"select":"a","textarea":""}`

0 commit comments

Comments
 (0)