mirror of
https://github.com/1C-Company/v8-code-style.git
synced 2025-04-13 20:50:35 +02:00
55 lines
2.8 KiB
Markdown
55 lines
2.8 KiB
Markdown
|
# Код расположен после асинхронного вызова
|
||
|
|
||
|
При асинхронном подходе вызов метода выполняется как обычно, но управление возвращается вызывающему коду до того,
|
||
|
как асинхронный метод завершит свою работу. После этого вызывающий код продолжает свое выполнение.
|
||
|
Особенность асинхронного выполнения: исполнение на стороне вызывающего кода продолжится до того,
|
||
|
как полностью закончилось исполнение вызванного метода.
|
||
|
|
||
|
Для правильного решения нужно вынести весь код, который должен быть выполнен после выполнения асинхронного действия,
|
||
|
в экспортный метод и указать его имя в обработке оповещения, которая будет вызвана после завершения асинхронного действия.
|
||
|
Или использовать асинхронность через обещания, например, Ждать ПредупреждениеАсинх(Текст).
|
||
|
|
||
|
## Неправильно
|
||
|
|
||
|
```bsl
|
||
|
Текст = "Текст предупреждения";
|
||
|
ПоказатьПредупреждение( , Текст);
|
||
|
Сообщить("Закрыли предупреждение");
|
||
|
```
|
||
|
|
||
|
```bsl
|
||
|
ПоказатьПредупреждение(,ТекстПредупреждения);
|
||
|
Отказ = Истина;
|
||
|
```
|
||
|
|
||
|
## Правильно
|
||
|
|
||
|
```bsl
|
||
|
Текст = "Текст предупреждения";
|
||
|
Ждать ПредупреждениеАсинх(Текст);
|
||
|
Сообщить("Закрыли предупреждение");
|
||
|
```
|
||
|
|
||
|
```bsl
|
||
|
&НаКлиенте
|
||
|
Процедура Команда1(Команда)
|
||
|
Оповещение = Новый ОписаниеОповещения("ПредупреждениеЗавершение", ЭтотОбъект);
|
||
|
Текст = "Текст предупреждения";
|
||
|
ПоказатьПредупреждение(Оповещение, Текст);
|
||
|
КонецПроцедуры
|
||
|
|
||
|
&НаКлиенте
|
||
|
Процедура ПредупреждениеЗавершение(ДополнительныеПараметры) Экспорт
|
||
|
Сообщить("Закрыли предупреждение");
|
||
|
КонецПроцедуры;
|
||
|
```
|
||
|
|
||
|
```bsl
|
||
|
Отказ = Истина;
|
||
|
ПоказатьПредупреждение(,ТекстПредупреждения);
|
||
|
```
|
||
|
|
||
|
## См.
|
||
|
|
||
|
- [Синхронные и асинхронные методы работы](https://its.1c.ru/db/v8319doc#bookmark:dev:TI000001505)
|