pull/14967/head
Dominic Gannaway 2 years ago
parent a9e7827e5e
commit d69a3794d1

@ -0,0 +1,16 @@
import { flushSync } from 'svelte';
import { test } from '../../test';
export default test({
async test({ assert, target, logs }) {
const [btn1] = target.querySelectorAll('button');
btn1.click();
flushSync();
await Promise.resolve();
await Promise.resolve();
assert.deepEqual(logs, ['cleanup']);
}
});

@ -0,0 +1,46 @@
<script>
import { createSubscriber } from 'svelte/reactivity';
class MyStore {
#subscribe;
#data = $state([
['a', [1, 2]],
['b', [3, 4]]
]);
#id;
constructor(options) {
options?.someBoolean;
this.#id = options?.id;
this.#subscribe = createSubscriber(() => {
debugger
return () => {
console.log('cleanup');
};
});
}
get data() {
this.#subscribe();
return this.#data;
}
set data(v) {
this.#data = v;
}
}
let storeOptions = $state({
someBoolean: false,
id: 0
});
let myStore = $derived(new MyStore(storeOptions));
</script>
<button
onclick={() => {
storeOptions.someBoolean = !storeOptions.someBoolean;
}}>+</button
>
{#each myStore.data as _}{/each}
Loading…
Cancel
Save