Перейти к содержимому
GitHub

{#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}