pull/15895/head
Rich Harris 4 months ago
parent ec8bddc8ce
commit 434f40fb3b

@ -735,9 +735,7 @@ function flush_queued_effects(effects) {
export function schedule_effect(signal) { export function schedule_effect(signal) {
if (!is_flushing) { if (!is_flushing) {
is_flushing = true; is_flushing = true;
if (!is_flushing_sync) { queueMicrotask(flush_queued_root_effects);
queueMicrotask(flush_queued_root_effects);
}
} }
var effect = (last_scheduled_effect = signal); var effect = (last_scheduled_effect = signal);
@ -821,30 +819,24 @@ function process_effects(root) {
* @returns {T} * @returns {T}
*/ */
export function flushSync(fn) { export function flushSync(fn) {
var previously_flushing_sync = is_flushing_sync; var result;
is_flushing_sync = true;
try {
var result;
is_flushing_sync = true;
if (fn) { if (fn) {
is_flushing = true; is_flushing = true;
flush_queued_root_effects(); flush_queued_root_effects();
result = fn(); result = fn();
} }
while (true) {
flush_tasks();
if (queued_root_effects.length === 0) { while (true) {
return /** @type {T} */ (result); flush_tasks();
}
is_flushing = true; if (queued_root_effects.length === 0) {
flush_queued_root_effects(); return /** @type {T} */ (result);
} }
} finally {
is_flushing_sync = previously_flushing_sync; is_flushing = true;
flush_queued_root_effects();
} }
} }

Loading…
Cancel
Save