File tree Expand file tree Collapse file tree 3 files changed +55
-0
lines changed
packages/svelte/tests/runtime-runes/samples/async-prop Expand file tree Collapse file tree 3 files changed +55
-0
lines changed Original file line number Diff line number Diff line change 1+ <script >
2+ let { num } = $props ();
3+ </script >
4+
5+ <p >{num }</p >
Original file line number Diff line number Diff line change 1+ import { tick } from 'svelte' ;
2+ import { deferred } from '../../../../src/internal/shared/utils.js' ;
3+ import { test } from '../../test' ;
4+
5+ /** @type {ReturnType<typeof deferred> } */
6+ let d ;
7+
8+ export default test ( {
9+ html : `<p>pending</p>` ,
10+
11+ get props ( ) {
12+ d = deferred ( ) ;
13+
14+ return {
15+ promise : d . promise
16+ } ;
17+ } ,
18+
19+ async test ( { assert, target, component } ) {
20+ d . resolve ( 'hello' ) ;
21+ await Promise . resolve ( ) ;
22+ await Promise . resolve ( ) ;
23+ await Promise . resolve ( ) ;
24+ await tick ( ) ;
25+ assert . htmlEqual ( target . innerHTML , '<p>hello</p>' ) ;
26+
27+ d = deferred ( ) ;
28+ component . promise = d . promise ;
29+ await tick ( ) ;
30+ assert . htmlEqual ( target . innerHTML , '<p>pending</p>' ) ;
31+
32+ d . resolve ( 'hello again' ) ;
33+ await Promise . resolve ( ) ;
34+ await tick ( ) ;
35+ assert . htmlEqual ( target . innerHTML , '<p>hello again</p>' ) ;
36+ }
37+ } ) ;
Original file line number Diff line number Diff line change 1+ <script >
2+ import Child from ' ./Child.svelte' ;
3+
4+ let { promise } = $props ();
5+ </script >
6+
7+ <svelte:boundary >
8+ <Child value ={await promise } />
9+
10+ {#snippet pending ()}
11+ <p >pending</p >
12+ {/ snippet }
13+ </svelte:boundary >
You can’t perform that action at this time.
0 commit comments