- Add
QueueingStrategy
parameter which lets the user configure behaviour of the ReactiveModel
when WatchContext
is already executing a task. The only available option (apart from throwing) for now is the ability to skip the new task
- Improve documentation
- Remove
task0
. It wasn't used and is actually a syntactic sugar
- Исправлена ошибка с использованием
scheduled
-параметра в Task1/Task2
- Добавлена возможность стартовать Task/JobFlow "лениво": после появления подписчиков на
Flow
результатов и/или состояния jobFlow:
model.fetchUsers.start(
scheduled = StartScheduled.Lazily(minResultsSubscribers = 1, minStateSubscribers = 0)
)
delay(2000)
// this will correctly print results while with `StartScheduled.Eagerly`
// they will be emitted early and won't be ever replayed
model.fetchUsers.results(replayLast = false).collect { println(it) }
- Добавлена возможность отменять Task
- Добавлены targets для M1: iosSimulatorArm64, macosArm64, macosX64
- Убрана функция
Task.startAndAwait
. В ней был race condition, из-за которого она работала некорректно.
С учётом того, что она нигде не испльзовалась, безопасно её убрать. Если понадобится в будущем, надо
будет продумать иной подход
JobFlow.state
теперь возвращает Flow
вместо StateFlow
. Последний накладывал излишние ограничения
на имплементации.
- Функция
mapResults
переименована в mapSuccessResults
, в соответствии с тем что она делает
- Лямбда-аргументы
mapSuccessResults
и mapErrors
получили модификатор suspend
successResults
/errorResults
теперь имеют умолчальное значение для replayLast
(было забыто)
successResults
по умолчанию теперь имеют replayLast=false
- Поддержка маппинга ошибок: в
ReactiveModel
и в конструкторах тасков/job-ов
- Добавлены
JobFlow.mapResults()
, JobFlow.mapErrors()
- Добавлен метод
start
с поддержкой parentScope
- Исправлен баг с эмиттом ошибок при
replayLast=false