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