Skip to content

Commit

Permalink
1. Модуль Асинхронность переименован в Обещания
Browse files Browse the repository at this point in the history
2. В API Обещания проброшено состояние исполнения
  • Loading branch information
sfaqer committed Aug 11, 2023
1 parent 391e686 commit 588bb2e
Show file tree
Hide file tree
Showing 6 changed files with 50 additions and 6 deletions.
13 changes: 12 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

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

### Модуль Асинхронность
### Модуль Обещания

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

Expand Down Expand Up @@ -89,3 +89,14 @@
//
Функция Поймать(Алгоритм)
```

#### Состояние

```bsl
// Возвращает текущее состояние исполнения обещания
//
// Возвращаемое значение:
// СостояниеФоновогоЗадания - Текущее состояние
//
Функция Состояние()
```
2 changes: 1 addition & 1 deletion packagedef
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Описание.Имя("async")
.Версия("0.1.0")
.Версия("0.2.0")
.Автор("Кирилл Черненко")
.АдресАвтора("https://github.com/sfaqer")
.Описание("Фреймворк асинхронного исполнения для OneScript")
Expand Down
15 changes: 15 additions & 0 deletions src/internal/Классы/Обещание.os
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,21 @@

КонецФункции

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

Если Задание = Неопределено Тогда
Возврат СостояниеФоновогоЗадания.НеВыполнялось;
Иначе
Возврат Задание.Состояние;
КонецЕсли;

КонецФункции

#КонецОбласти

#Область СлужебныеПроцедурыИФункции
Expand Down
File renamed without changes.
22 changes: 20 additions & 2 deletions tests/Обещание.os
Original file line number Diff line number Diff line change
Expand Up @@ -95,10 +95,28 @@

КонецПроцедуры

&Тест
Процедура Состояние() Экспорт

НеЗапущенноеОбещание = Новый Обещание("", "");
Утверждения.ПроверитьРавенство(НеЗапущенноеОбещание.Состояние(), СостояниеФоновогоЗадания.НеВыполнялось);

Обещание = Обещание();

Приостановить(10);

Утверждения.ПроверитьРавенство(Обещание.Состояние(), СостояниеФоновогоЗадания.Активно);

Приостановить(100);

Утверждения.ПроверитьРавенство(Обещание.Состояние(), СостояниеФоновогоЗадания.Завершено);

КонецПроцедуры

Функция Обещание()
Возврат Асинхронность.ВыполнитьЛямбду("() -> Приостановить(100); Возврат 1", ЭтотОбъект, Новый Массив);
Возврат Обещания.ВыполнитьЛямбду("() -> Приостановить(100); Возврат 1", ЭтотОбъект, Новый Массив);
КонецФункции

Функция ОбещаниеСОшибкой()
Возврат Асинхронность.ВыполнитьЛямбду("() -> ВызватьИсключение ""ЯОшибка""", ЭтотОбъект, Новый Массив);
Возврат Обещания.ВыполнитьЛямбду("() -> ВызватьИсключение ""ЯОшибка""", ЭтотОбъект, Новый Массив);
КонецФункции
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@

// Когда

Обещание = Асинхронность.ВыполнитьЛямбду(
Обещание = Обещания.ВыполнитьЛямбду(
"(Первое, Второе) -> Возврат СложитьСЗадержкой(Первое, Второе)",
ЭтотОбъект,
Параметры
Expand All @@ -35,7 +35,7 @@

// Когда

Обещание = Асинхронность.ВыполнитьДелегат(
Обещание = Обещания.ВыполнитьДелегат(
Новый Действие(ЭтотОбъект, "СложитьСЗадержкой"),
Параметры
);
Expand Down

0 comments on commit 588bb2e

Please sign in to comment.