{#await ...}
{#await expression}...{:then name}...{:catch name}...{/await}
{#await expression}...{:then name}...{/await}
{#await expression then name}...{/await}
{#await expression catch name}...{/await}
Блоки await
позволяют разделять выполнение на три возможных состояния Promise
— ожидающий (pending), выполненный (fulfilled) или отклонённый (rejected):
{#await promise}
<!-- promise находится в состоянии ожидания -->
<p>ожидание выполнения promise...</p>
{:then value}
<!-- promise был выполнен или не является объектом Promise -->
<p>Значение: {value}</p>
{:catch error}
<!-- promise был отклонен -->
<p>Произошла ошибка: {error.message}</p>
{/await}
Блок catch
можно опустить, если вам не нужно ничего отрисовывать в случае отклонения promise (или если ошибка невозможна):
{#await promise}
<!-- promise находится в состоянии ожидания -->
<p>ожидание выполнения promise...</p>
{:then value}
<!-- promise был выполнен -->
<p>Значение: {value}</p>
{/await}
Если вам не важен статус ожидания, вы также можете опустить начальный блок:
{#await promise then value}
<p>Значение: {value}</p>
{/await}
Аналогично, если вы хотите отображать только состояние ошибки, вы можете опустить блок then
:
{#await promise catch error}
<p>Произошла ошибка: {error}</p>
{/await}