Асинх библиотека для реализации асинхронного взаимодействия для OneScript
// Выполняет асинхронно переданную лямбду
//
// Параметры:
// Алгоритм - Строка - Лямбда выражение которое требуется исполнить
// Объект - Сценарий - Объект который необходимо захватить в лямбду
// Параметры - Массив из Произвольный - Параметры алгоритма
//
// Возвращаемое значение:
// Обещание - Обещание о выполнении переданного алгоритма
//
Функция ВыполнитьЛямбду(Знач Алгоритм, Объект, Параметры)
// Выполняет асинхронно переданный делегат
//
// Параметры:
// Действие - Действие - Делегат на метод который требуется исполнить
// Параметры - Массив из Произвольный - Параметры метода
//
// Возвращаемое значение:
// Обещание - Обещание о выполнении переданного метода
//
Функция ВыполнитьДелегат(Действие, Параметры)
// Ожидает исполнение всех переданных обещаний
//
// Параметры:
// Обещания - Массив из Обещание - Обещания которых ожидаем
// Таймаут - Число- Количество миллисекунд по истечении которых будет выброшено исключение
//
Процедура ОжидатьВсе(Обещания, Таймаут = 0) Экспорт
// Получает результат исполнения обещания
//
// Параметры:
// Таймаут - Число - Время в миллисекундах в течении которого нужно ожидать завершения задания,
// если время ожидания будет превышено, будет выброшено исключение
//
// Возвращаемое значение:
// Произвольный - Результат исполнения обещания
//
Функция Получить(Таймаут = 0)
// После получения результата запускает ещё одно задание которое будет асинхронно
// выполнять переданный алгоритм над результатом
//
// Параметры:
// Алгоритм - Строка - Лямбда выражение функция с одним параметром, которая принимает результат исполнения
// текущего обещания и возвращает новый результат
// - Действие - Делегат на функцию с одним параметром, которая принимает результат исполнения
// текущего обещания и возвращает новый результат
//
// Возвращаемое значение:
// Обещание - Обещание об исполнение алгоритма над результатом исполнения текущего обещания
//
Функция Затем(Знач Алгоритм)
// В случае если в нижестоящих обещаниях будет выброшено исключение, оно будет перехвачено
// и передано в указанный алгоритм.
//
// Параметры:
// Алгоритм - Строка - Лямбда выражение функция с одним параметром, которая принимает ИнформацияОбОшибке
// нижестоящих обещаний и возвращает новый результат
// - Действие - Делегат на функцию с одним параметром, которая принимает ИнформацияОбОшибке
// нижестоящих обещаний и возвращает новый результат
//
// Возвращаемое значение:
// Обещание - Обещание о выполнении алгоритма в случае возникновения исключения
//
Функция Поймать(Алгоритм)
// Возвращает текущее состояние исполнения обещания
//
// Возвращаемое значение:
// СостояниеФоновогоЗадания - Текущее состояние
//
Функция Состояние()