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

Асинхронность

Alpine создан для поддержки асинхронных функций, в большинстве случаев он поддерживает стандартные.

Например, допустим, у вас есть простая функция getLabel(), которая используется в качестве входного элемента директивы x-text:

function getLabel() {
return 'Привет, мир!';
}
<span x-text="getLabel()"></span>

Поскольку функция getLabel является синхронной, всё работает так, как и ожидалось.

Теперь представим, что getLabel делает сетевой запрос на получение метки и не может вернуть её мгновенно (асинхронно). Сделав getLabel асинхронной функцией, вы можете вызывать её из Alpine, используя синтаксис JavaScript await.

async function getLabel() {
let response = await fetch('/api/label');
return await response.text();
}
<span x-text="await getLabel()"></span>

Кроме того, если вы предпочитаете вызывать методы в Alpine без круглых скобок, вы можете их не указывать, и Alpine определит, что предоставленная функция является асинхронной, и обработает её соответствующим образом. Например:

<span x-text="getLabel"></span>