Skip to content

Commit 588bb2e

Browse files
committed
1. Модуль Асинхронность переименован в Обещания
2. В API Обещания проброшено состояние исполнения
1 parent 391e686 commit 588bb2e

File tree

6 files changed

+50
-6
lines changed

6 files changed

+50
-6
lines changed

README.md

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

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

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

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

@@ -89,3 +89,14 @@
8989
//
9090
Функция Поймать(Алгоритм)
9191
```
92+
93+
#### Состояние
94+
95+
```bsl
96+
// Возвращает текущее состояние исполнения обещания
97+
//
98+
// Возвращаемое значение:
99+
// СостояниеФоновогоЗадания - Текущее состояние
100+
//
101+
Функция Состояние()
102+
```

packagedef

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
Описание.Имя("async")
2-
.Версия("0.1.0")
2+
.Версия("0.2.0")
33
.Автор("Кирилл Черненко")
44
.АдресАвтора("https://github.com/sfaqer")
55
.Описание("Фреймворк асинхронного исполнения для OneScript")

src/internal/Классы/Обещание.os

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,21 @@
9494

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

97+
// Возвращает текущее состояние исполнения обещания
98+
//
99+
// Возвращаемое значение:
100+
// СостояниеФоновогоЗадания - Текущее состояние
101+
//
102+
Функция Состояние() Экспорт
103+
104+
Если Задание = Неопределено Тогда
105+
Возврат СостояниеФоновогоЗадания.НеВыполнялось;
106+
Иначе
107+
Возврат Задание.Состояние;
108+
КонецЕсли;
109+
110+
КонецФункции
111+
97112
#КонецОбласти
98113

99114
#Область СлужебныеПроцедурыИФункции

tests/Обещание.os

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,10 +95,28 @@
9595

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

98+
&Тест
99+
Процедура Состояние() Экспорт
100+
101+
НеЗапущенноеОбещание = Новый Обещание("", "");
102+
Утверждения.ПроверитьРавенство(НеЗапущенноеОбещание.Состояние(), СостояниеФоновогоЗадания.НеВыполнялось);
103+
104+
Обещание = Обещание();
105+
106+
Приостановить(10);
107+
108+
Утверждения.ПроверитьРавенство(Обещание.Состояние(), СостояниеФоновогоЗадания.Активно);
109+
110+
Приостановить(100);
111+
112+
Утверждения.ПроверитьРавенство(Обещание.Состояние(), СостояниеФоновогоЗадания.Завершено);
113+
114+
КонецПроцедуры
115+
98116
Функция Обещание()
99-
Возврат Асинхронность.ВыполнитьЛямбду("() -> Приостановить(100); Возврат 1", ЭтотОбъект, Новый Массив);
117+
Возврат Обещания.ВыполнитьЛямбду("() -> Приостановить(100); Возврат 1", ЭтотОбъект, Новый Массив);
100118
КонецФункции
101119

102120
Функция ОбещаниеСОшибкой()
103-
Возврат Асинхронность.ВыполнитьЛямбду("() -> ВызватьИсключение ""ЯОшибка""", ЭтотОбъект, Новый Массив);
121+
Возврат Обещания.ВыполнитьЛямбду("() -> ВызватьИсключение ""ЯОшибка""", ЭтотОбъект, Новый Массив);
104122
КонецФункции

tests/Асинхронность.os renamed to tests/Обещания.os

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
// Когда
1414

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

3636
// Когда
3737

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

0 commit comments

Comments
 (0)