在Svelte's tutorial on await blocks and promises中,它们显示了在等待/解决/拒绝诺言时如何显示特定文本。
但是当未加载时,如何显示元素?即当诺言已经解决或被拒绝时(当然,{:then}和{:catch}中的按钮都没有重复)
我想要做的是以下事情:
{#await promise}
{:then number}
<MyElement />
{:catch error}
<MyElement />
{/await}
但不要重复<MyElement />
。
答案 0 :(得分:3)
根据Promises API(and this question,尚无现成的方法来了解诺言是否已解决)
您可以创建一个标志,该标志将在解决诺言时更新,例如
// in <script>
let resolved;
promise.then(x => resolved = true).catch(x => resolved = true);
最后,做
{#if resolved}
<MyElement />
{/if}