大多数 Web 应用程序都需要在某些时候处理异步数据。Svelte 让你可以直接在标记中 await promises 的值:
App
{#await promise}
<p>...rolling</p>
{:then number}
<p>you rolled a {number}!</p>
{:catch error}
<p style="color: red">{error.message}</p>
{/await}
只有最近的
promise
会被考虑,这意味着你不需要担心竞态条件。
如果你知道你的 promise 不会被 reject,你可以省略 catch
代码块。如果你不想在 promise resolve 之前显示任何内容,你也可以省略第一个代码块:
{#await promise then number}
<p>you rolled a {number}!</p>
{/await}
上一页 下一页
1
2
3
4
5
6
7
8
9
10
11
12
<script>
import { roll } from './utils.js';
let promise = $state(roll());
</script>
<button onclick={() => promise = roll()}>
roll the dice
</button>
<p>...rolling</p>