Осторожнее с Асинх!
Особенности асинхронных методов
Серию постов про нюансы Асинх методов начинаем с асинхронных процедур.
😁 Если коротко, то не создавайте их
У асинхронных процедур есть очень неприятный нюанс. Их невозможно Ждать.⏲
Так как процедуры не возвращают результат, то и Ждать их результата невозможно.
💬Например, у нас есть процедура, которая заполняет дерево на форме. Заполняет она его из файла, предварительно асинхронно проверяя его существование при помощи Ждать Файл.СуществуетАсинх()
❗️ Такую процедуру нельзя вызвать и подождать. Нельзя где-то в коде вызвать вашу процедуру “ЗаполнитьДеревоИзФайла
”, а сразу после что-то пытаться сделать с этим самым деревом. Потому что оно ещё не будет заполнено.
💡 Поэтому, если вы создаёте асинхронную процедуру (метод, который ничего не должен возвращать), то подумайте хорошенько… и сделайте её Функцией. Пусть лучше ваш метод бессмысленно вернёт Неопределено или Истина. Зато тогда его можно будет подоЖдать
👍 Кстати, ещё хорошей практикой будет в конце названия метода добавить “Асинх”. Тогда разработчик, который вызывает метод, точно поймёт, что он асинхронен. Заботьтесь о тех, кто будет работать с вашим кодом после вас ❤️