pull/16514/head
7nik 1 month ago
parent ff522e2b94
commit 67e1044a9d

@ -0,0 +1,43 @@
import { tick } from 'svelte';
import { test } from '../../test';
export default test({
async test({ assert, target }) {
const [reset, one, two, reject] = target.querySelectorAll('button');
await tick();
assert.htmlEqual(
target.innerHTML,
'<button>reset</button><button>one</button><button>two</button><button>reject</button> waiting'
);
one.click();
await tick();
assert.htmlEqual(
target.innerHTML,
'<button>reset</button><button>one</button><button>two</button><button>reject</button> one_res'
);
reset.click();
await tick();
assert.htmlEqual(
target.innerHTML,
'<button>reset</button><button>one</button><button>two</button><button>reject</button> waiting'
);
two.click();
await tick();
assert.htmlEqual(
target.innerHTML,
'<button>reset</button><button>one</button><button>two</button><button>reject</button> two_res'
);
reset.click();
reject.click();
await tick();
assert.htmlEqual(
target.innerHTML,
'<button>reset</button><button>one</button><button>two</button><button>reject</button> reject_catch'
);
}
});

@ -0,0 +1,22 @@
<script>
let deferred = $state(Promise.withResolvers());
</script>
<button onclick={() => deferred = Promise.withResolvers()}>reset</button>
<button onclick={() => deferred.resolve("one")}>one</button>
<button onclick={() => deferred.resolve("two")}>two</button>
<button onclick={() => deferred.reject("reject")}>reject</button>
<svelte:boundary>
{#await await deferred.promise + "_res"}
waiting
{:then res}
{res}
{:catch err}
{err}_catch
{/await}
{#snippet pending()}
<p>pending</p>
{/snippet}
</svelte:boundary>
Loading…
Cancel
Save