Home / Function/ schedule_effect() — svelte Function Reference

schedule_effect() — svelte Function Reference

Architecture documentation for the schedule_effect() function in batch.js from the svelte codebase.

Entity Profile

Dependency Diagram

graph TD
  e3c23578_a277_4ec0_656f_1000b1fa503b["schedule_effect()"]
  d8e42d9d_2e3c_635c_19d3_b946a4341c0f["batch.js"]
  e3c23578_a277_4ec0_656f_1000b1fa503b -->|defined in| d8e42d9d_2e3c_635c_19d3_b946a4341c0f
  a50e548b_3d25_da25_5809_14d318b33cb2["d()"]
  a50e548b_3d25_da25_5809_14d318b33cb2 -->|calls| e3c23578_a277_4ec0_656f_1000b1fa503b
  4884c8a4_7cc6_1b32_b689_ac96e3d81e91["unskip_effect()"]
  4884c8a4_7cc6_1b32_b689_ac96e3d81e91 -->|calls| e3c23578_a277_4ec0_656f_1000b1fa503b
  4a5c85d2_dfaa_8eed_83a2_1b140cad91fb["revive()"]
  4a5c85d2_dfaa_8eed_83a2_1b140cad91fb -->|calls| e3c23578_a277_4ec0_656f_1000b1fa503b
  75a146bb_c458_4453_bba5_066eec39b494["mark_effects()"]
  75a146bb_c458_4453_bba5_066eec39b494 -->|calls| e3c23578_a277_4ec0_656f_1000b1fa503b
  9764bb93_860c_6dee_2112_890b69ee0aa3["create_effect()"]
  9764bb93_860c_6dee_2112_890b69ee0aa3 -->|calls| e3c23578_a277_4ec0_656f_1000b1fa503b
  6f8f529a_4ea8_0edd_6a63_9acc29cbd4ac["resume_children()"]
  6f8f529a_4ea8_0edd_6a63_9acc29cbd4ac -->|calls| e3c23578_a277_4ec0_656f_1000b1fa503b
  b81807e3_a940_6fda_f1f2_243d04126552["mark_reactions()"]
  b81807e3_a940_6fda_f1f2_243d04126552 -->|calls| e3c23578_a277_4ec0_656f_1000b1fa503b
  e18484c6_b89d_ae11_a28b_147e60713b71["schedule_possible_effect_self_invalidation()"]
  e18484c6_b89d_ae11_a28b_147e60713b71 -->|calls| e3c23578_a277_4ec0_656f_1000b1fa503b
  style e3c23578_a277_4ec0_656f_1000b1fa503b fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/svelte/src/internal/client/reactivity/batch.js lines 837–863

export function schedule_effect(signal) {
	var effect = (last_scheduled_effect = signal);

	while (effect.parent !== null) {
		effect = effect.parent;
		var flags = effect.f;

		// if the effect is being scheduled because a parent (each/await/etc) block
		// updated an internal source, or because a branch is being unskipped,
		// bail out or we'll cause a second flush
		if (
			is_flushing &&
			effect === active_effect &&
			(flags & BLOCK_EFFECT) !== 0 &&
			(flags & HEAD_EFFECT) === 0
		) {
			return;
		}

		if ((flags & (ROOT_EFFECT | BRANCH_EFFECT)) !== 0) {
			if ((flags & CLEAN) === 0) return;
			effect.f ^= CLEAN;
		}
	}

	queued_root_effects.push(effect);
}

Domain

Subdomains

Frequently Asked Questions

What does schedule_effect() do?
schedule_effect() is a function in the svelte codebase, defined in packages/svelte/src/internal/client/reactivity/batch.js.
Where is schedule_effect() defined?
schedule_effect() is defined in packages/svelte/src/internal/client/reactivity/batch.js at line 837.
What calls schedule_effect()?
schedule_effect() is called by 8 function(s): create_effect, d, mark_effects, mark_reactions, resume_children, revive, schedule_possible_effect_self_invalidation, unskip_effect.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free