OpenHub
OpenHub
Войти

asyncпакет

с апстрима
автор: Кирилл Черненкоскачиваний: 6

Пакет лежит в основном пуле хаба: короткой формы достаточно, если хаб прописан сервером пакетов в opm.cfg.

opm install async

Установка на opm младше 1.7.0

Легаси-флоу. Клиент младше 1.7.0 адрес пула в аргументе не разбирает: пул сначала прописывают сервером пакетов, и только потом ставят через него. На 1.7.0 и новее этот раздел не нужен — хватает команды из шапки страницы.

Добавьте пул сервером пакетов в opm.cfg. Порт продублирован в «Сервер»: у opm push поле «Порт» не читается.

{ "СервераПакетов": [ { "Имя": "default", "Сервер": "https://hub.1cdevelopers.ru", "Порт": 443, "ПутьНаСервере": "/api/v1/pools/default/download/", "РесурсПубликацииПакетов": "/api/v1/pools/default/push", "Приоритет": 1 } ] }

И ставьте пакет, указывая сервер:

opm install -m default async

Описание

async

Асинх библиотека для реализации асинхронного взаимодействия для OneScript

Программный интерфейс

Модуль Обещания

ВыполнитьЛямбду

// Выполняет асинхронно переданную лямбду
//
// Параметры:
//  Алгоритм  - Строка - Лямбда выражение которое требуется исполнить
//  Объект    - Сценарий - Объект который необходимо захватить в лямбду
//  Параметры - Массив из Произвольный - Параметры алгоритма
//
// Возвращаемое значение:
//  Обещание - Обещание о выполнении переданного алгоритма
//
Функция ВыполнитьЛямбду(Знач Алгоритм, Объект, Параметры)

ВыполнитьДелегат

// Выполняет асинхронно переданный делегат
//
// Параметры:
//  Действие  - Действие - Делегат на метод который требуется исполнить
//  Параметры - Массив из Произвольный - Параметры метода
//
// Возвращаемое значение:
//  Обещание - Обещание о выполнении переданного метода
//
Функция ВыполнитьДелегат(Действие, Параметры)

ОжидатьВсе

// Ожидает исполнение всех переданных обещаний
//
// Параметры:
//  Обещания - Массив из Обещание - Обещания которых ожидаем
//  Таймаут -  Число- Количество миллисекунд по истечении которых будет выброшено исключение
//
Процедура ОжидатьВсе(Обещания, Таймаут = 0) Экспорт

Класс Обещание

Получить

// Получает результат исполнения обещания
//
// Параметры:
//  Таймаут - Число - Время в миллисекундах в течении которого нужно ожидать завершения задания,
//   если время ожидания будет превышено, будет выброшено исключение
//
// Возвращаемое значение:
//  Произвольный - Результат исполнения обещания
//
Функция Получить(Таймаут = 0)

Затем

// После получения результата запускает ещё одно задание которое будет асинхронно
//  выполнять переданный алгоритм над результатом
//
// Параметры:
//  Алгоритм - Строка - Лямбда выражение функция с одним параметром, которая принимает результат исполнения
//   текущего обещания и возвращает новый результат
//           - Действие - Делегат на функцию с одним параметром, которая принимает результат исполнения
//   текущего обещания и возвращает новый результат
//
// Возвращаемое значение:
//  Обещание - Обещание об исполнение алгоритма над результатом исполнения текущего обещания
//
Функция Затем(Знач Алгоритм)

Поймать

// В случае если в нижестоящих обещаниях будет выброшено исключение, оно будет перехвачено
//  и передано в указанный алгоритм.
//
// Параметры:
//  Алгоритм - Строка - Лямбда выражение функция с одним параметром, которая принимает ИнформацияОбОшибке
//   нижестоящих обещаний и возвращает новый результат
//           - Действие - Делегат на функцию с одним параметром, которая принимает ИнформацияОбОшибке
//   нижестоящих обещаний и возвращает новый результат
//
// Возвращаемое значение:
//  Обещание - Обещание о выполнении алгоритма в случае возникновения исключения
//
Функция Поймать(Алгоритм)

Состояние

// Возвращает текущее состояние исполнения обещания
//
// Возвращаемое значение:
//  СостояниеФоновогоЗадания - Текущее состояние
//
Функция Состояние()