JavaScript запросы
Бывают случаи, когда вы хотите организовать операции, например, после запуска двух запросов вы хотите объединить и сохранить их результаты во временном состоянии, а затем открыть модальный. Этот процесс может быть сложным при объединении нескольких обработчиков событий в цепочку и, конечно же, не может быть выполнен в одной строке кода в {{ }}
. Именно здесь в игру вступает JavaScript (JS) запрос. Он позволяет взаимодействовать с компонентами и запросами путем написания сложных JS-запросов для выполнения следующих операций:
Взаимодействие с компонентами пользовательского интерфейса
Запускающие запросы
Доступ к сторонним библиотекам JS
Настройка функций
Следующий пример предназначен для того, чтобы вы быстро поняли, что такое JS-запрос и как он работает.
Используйте JS-запрос для объединения результатов запроса
SQL-запрос query1
читает id
, first_name
, last_name
и tid
поля из таблицы players
в базе данных PostgreSQL.
SQL-запрос query2
читает tid
, city
и name
поля из таблицы teams
в базе данных PostgreSQL.
Используйте JS-запрос для левого соединения query1
и query2
на том же самом tid
в следующих шагах.
Создайте
query3
и выберите Запустить JavaScript-код.Вставьте следующий код.
В этом фрагменте кода
Promise.all()
способ получает результатыquery1
иquery2
, иjoin()
метод объединяет их результаты после успешного запуска на основе значенийtid
поле.\
Возвращение данных
Воспользуйтесь return
синтаксис для возврата результата. Например, следующий код возвращает 3
.
Возвращаемый результат также может быть объектом Promise. Например, query2.run()
возвращает объект Promise.
Оператор return не является необходимым для сценариев, в которых вы хотите опустить результаты.
Доступ к данным
Используйте JS-запросы для доступа к данным в вашем приложении. Обратите внимание, что нет необходимости использовать {{ }}
обозначение.
Управляющий компонент
В JS-запросах вы можете использовать методы, предоставляемые компонентами, для взаимодействия с компонентами пользовательского интерфейса в вашем приложении. Такая операция не поддерживается встроенным JS-кодом в {{}}
.
Метод input 1.setValue() (или другие методы компонента) является асинхронным и возвращает объект Promise. Обращение к input1.value сразу после установки значения input1 не возвращает обновленное значение.
Выполнение запроса
run()
метод и обратные вызовы
run()
метод и обратные вызовыВызов run()
метод для выполнения других запросов, например:
Возвращаемое значение query.run()
это обещание, поэтому вы можете прикрепить обратные вызовы для обработки успешного результата или ошибки.
Передача параметров
Вы можете передать параметры в методе run()
, чтобы отделить реализацию запроса от его параметров.
Например, в SQL-запросе query1
, вы можете определить name
и status
как параметры, которые необходимо передать для его выполнения.
Затем вы можете передать соответствующие параметры в query1
.
Демо 1
Когда у вас есть несколько входных данных в приложении, запускающих один и тот же запрос, передача параметров этому запросу позволяет вам повторно использовать его в любом месте.
При обновлении реализаций SQL может возникнуть путаница, поскольку необходимо тщательно проверять и обновлять все повторяющиеся запросы. Теперь вы можете избавиться от повторяющегося SQL, введя параметры запроса.
Затем запустите этот запрос в Run JavaScript обработчиков событий в каждом из входных данных.
Последовательное выполенение запросов
Бывают случаи, когда нужно последовательно выполнить несколько запросов. Чтобы это сделать нужно сначала подготовить все необходимые запросы в приложении. И затем добавить блок JavaScript
Объявить функцию
Вы можете объявлять функции внутри JS-запроса для лучшей читабельности.
Добавление предварительно загруженных скриптов
Apeekflow поддерживает импорт сторонних JS-библиотек и добавление предопределенного JS-кода, например, добавление глобальных методов или переменных для повторного использования на уровне приложения или рабочей области. Настройки на уровне приложения можно найти в разделе ⚙️ > Другие > Скрипты и стиль.
Для настройки на уровне рабочей области перейдите в раздел Настройки > Дополнительно.
На вкладке JavaScript вы можете добавить предварительно загруженный код JavaScript для определения глобальных методов и переменных, а затем повторно использовать их в своем приложении. Информацию об импорте библиотек смотрите в разделе .
Ограничения
По соображениям безопасности в Apeekflow отключены несколько глобальных переменных и функций window. Пожалуйста, сообщайте в Telegram, если у вас возникнут какие-либо проблемы.
Last updated