Перейти к содержимому
PD
Browser Automation Studio

Асинхронный вызов функций в BAS

Модуль «Асинхронный вызов функции» в Browser Automation Studio — запускать функции параллельно с основным скриптом, чтобы бот работал с двумя сайтами или ждал сигнала, не блокируясь.

Большинство потоков в BAS линейны: сделай это, потом то. Но иногда боту нужно делать два дела одновременно — и для этого нужен модуль «Асинхронный вызов функции».

Обычный вызов против асинхронного

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

Асинхронная функция иная. Это особая функция-действие, которая выполняется независимо от основного скрипта, параллельно с ним, и её можно даже приостановить на полпути. Вы её запускаете, основной поток идёт дальше, а результат вы забираете позже — вызов не блокирует.

Действия

  • Вызов асинхронной функции — запустить функцию параллельно.
  • Ждать выполнения асинхронной функции — приостановить основной поток, пока асинхронная функция не завершится, когда её результат нужен до продолжения.
  • Получить результат асинхронной функции — прочитать, что она вернула.
  • Отменить асинхронную функцию — остановить досрочно.

Конкретный пример

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

Когда к нему обращаться

Асинхронные функции добавляют сложности, поэтому используйте их, когда параллельность реально помогает: пересекающиеся ожидания, мониторинг чего-то во время другой работы, координация двух браузерных контекстов. Для обычной пошаговой работы обычный вызов функции проще и понятнее — тянитесь к асинхронности, только когда «одновременно» действительно часть задачи.

Вопросы и ответы

Что такое асинхронная функция в BAS?

Асинхронная функция — это функция-действие, которая выполняется независимо и параллельно с основным скриптом и может быть приостановлена на полпути. Обычный вызов функции выполняет всю цепочку и возвращает результат перед продолжением; асинхронный не блокирует.

Когда нужны асинхронные функции в BAS?

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

Ещё по теме

  • #Browser Automation Studio
  • #BAS
  • #Асинхронность
  • #Параллельность
  • #Функции

Есть идея? Давайте превратим её в работающий продукт.

Пропустите месяцы неопределённости. Получите понятную архитектуру, рабочий MVP и систему, которую можно тестировать, продавать и масштабировать.