Блок «Код»
С помощью блока «Код» вы можете добавить в процесс фрагмент JavaScript-кода. Это универсальный блок для вычислений, логики и работы с данными, контекстом и переменными.
Используйте блок «Код» для кода, который будете выполнять один раз, а пользовательские функции — для кода, который будете переиспользовать.
Как добавить блок «Код» на холст
- Перейдите в проект и на левой панели нажмите , чтобы открыть конструктор процессов.
- В верхнем левом углу холста нажмите — откроется список блоков.
- Из раздела Код и логика перетащите блок Код на холст.
Интерфейс редактора кода
Чтобы настроить блок, дважды нажмите на него на холсте. В этом блоке доступны следующие элементы:
-
Редактор кода с подсветкой синтаксиса и автокомплитом.
-
Библиотека функций . Панель быстрого поиска встроенных и пользовательских функций проекта. Двойной клик — вставка вызова функции в код.
-
Панель документации. Отображает подсказки и описание выбранной функции: имя, тип, описание. Автоматически появляется в правой части окна при нажатии на любую функцию из библиотеки.
Пример использования
Для примера создадим блок, который считает количество слов в сообщении.
-
Перейдите в проект и на левой панели нажмите , чтобы открыть конструктор процессов.
-
В верхнем левом углу холста нажмите — откроется список блоков.
-
Перетащите блок Триггеры → Сообщение на холст.
-
Перетащите блок Код и логика → Код на холст и соедините его с блоком Сообщение.
-
Дважды нажмите на блок Код.
-
Вставьте в него следующий код, в котором используются встроенные функции
ContextиReactions. Код зависит от используемой в проекте версии движка:- Версия 2
- Версия 1
// Получаем объект с сообщением
const content = Context.getMessageContent();
// Проверяем, есть ли вообще текст
if (!content || typeof content.text !== 'string') {
Reactions.sendText({text: "Я не вижу сообщения"});
return;
}
// Извлекаем текст и убираем лишние пробелы
const message = content.text.trim();
// Разбиваем сообщение по пробелам и фильтруем пустые элементы
const words = message.split(/\s+/).filter(Boolean);
// Считаем количество слов
const count = words.length;
// Отправляем простой ответ
Reactions.sendText({
text: `В твоем сообщении ${count} ${count === 1 ? "слово" : "слов(а)"}`
});// Получаем объект с сообщением
const content = await Context.getMessageContent();
// Проверяем, есть ли вообще текст
if (!content || typeof content.text !== 'string') {
Reactions.sendText("Я не вижу сообщения");
return;
}
// Извлекаем текст и убираем лишние пробелы
const message = content.text.trim();
// Разбиваем сообщение по пробелам и фильтруем пустые элементы
const words = message.split(/\s+/).filter(Boolean);
// Считаем количество слов
const count = words.length;
// Отправляем простой ответ
Reactions.sendText(`В твоем сообщении ${count} ${count === 1 ? "слово" : "слов(а)"}`); -
Нажмите Сохранить.
-
В конструкторе нажмите Тестировать. Откроется окно чата, и вы сможете проверить работу вашего кода.
Рекомендации
- Используйте явные имена переменных, чтобы вам сразу было понятно, что она делает. Например, если вы сохраняете в нее текст сообщения, то назовите ее
message. - Старайтесь не делать слишком большой и сложный код — лучше разбить на несколько функций и блоков.