如何监视变量并在每次变量发生变化时运行函数?

pow*_*eed 2 svelte sveltekit

这将像on:change事件一样。

我没有使用此事件,因为在某些小型库中不会发出此事件,并且暗示是使用绑定和$.

然而,Svelte 似乎没有一个干净的语法。

我只能想到类似的东西

$: {
    if (variable) {
        doSomething();
    }
}
Run Code Online (Sandbox Code Playgroud)

其中每次variable的值发生变化,doSomething()都会运行。

但是语句的使用if很奇怪..如果variable是布尔值怎么办?这样,当变量的值为 false 时,函数将不会运行。

这个想法是在每次变量值发生变化时运行该函数,无论新值实际是什么。

我也尝试过

$: doSomething(variable);
Run Code Online (Sandbox Code Playgroud)

它可以工作,但也很奇怪,因为该函数doSomething可能不需要参数。在这种情况下,参数纯粹是为了添加variable作为此$语法的依赖项......

还尝试了/sf/answers/3989126851/中的答案,但这根本不起作用。文档(/sf/answers/3989126851/)中也没有提到它。

提前致谢!

CD.*_*D.. 7

Rich Harris 建议的解决方案似乎确实有效:

$: variable, doSomething()
Run Code Online (Sandbox Code Playgroud)

工作示例:https://svelte.dev/repl/c25bdd71c9764f1f809bd35737fbaeb9 ?version=3.53.1