Перейти к содержимому

async_job и solo

Отмена, дочерние задачи и освобождение ресурсов для асинхронного Dart и построенный на них контроллер, который выполняет над своим состоянием по одной задаче за раз.

Отмена асинхронной работы. Future в Dart нельзя отменить. async_job добавляет асинхронному коду отмену, дочерние задачи и освобождение ресурсов: отменённая задача останавливается на ближайшей контрольной точке, выполняет уборку и завершается после своих дочерних задач. Пакету не нужны ни контроллер, ни Flutter: он работает на сервере, в CLI или под провайдером riverpod или обработчиком bloc, как показывает страница «С riverpod и bloc».

Состояние с жизненным циклом. solo — контроллер над одним неизменяемым состоянием, который выполняет над ним задачи по одной, с политиками для повторного вызова и правилами о том, в каких состояниях задача может работать; flutter_solo подключает его к виджетам. Страница «solo и bloc рядом» разбирает в обоих пакетах одиннадцать сценариев контроллера.

Пакет Что это
async_job Отмена, дочерние задачи и освобождение ресурсов для одной асинхронной операции. Чистый Dart, зависит только от meta.
solo Контроллер поверх async_job: очередь с политиками, правила состояния, дети, накопление. Чистый Dart.
flutter_solo Лицо solo для Flutter: SoloBuilder, ValueListenable, select, listen.
async_job_lints Плагин анализатора: сообщает о частых ошибках в коде на async_job.
solo_lints Плагин анализатора для кода на solo: правила async_job_lints и правила контроллера.

solo реэкспортирует async_job, а flutter_solo — solo, поэтому достаточно одной зависимости: async_job, если нужна только отмена, solo или flutter_solo, если нужен контроллер. Плагины — не зависимости: в analysis_options.yaml называют один из них, async_job_lints для кода на async_job или solo_lints, который включает его правила, для кода на solo.