Рецепты
Управление вводом через Throttle
Выберите режим `leading`, `trailing` или `leadingAndTrailing` для группы Command.
v0.1.0-dev.2Средний уровеньusecase_forge
Управление вводом через Throttle
Throttle определяет, как часто связанные Command проходят стадию допуска. Он не ограничивает число уже допущенных Execution.
Выберите режим Throttle
| Режим | Первый Command | Последний Command в окне | Когда применять |
|---|---|---|---|
leading | допускается сразу | отклоняется | важен немедленный отклик |
trailing | ждёт конца окна | заменяет сохранённого кандидата | важен только последний ввод |
leadingAndTrailing | допускается сразу | сохраняется до конца окна | нужны первое и итоговое значения |
dart
registerCommand<RefreshMetrics>(
_refresh,
instructions: UseCaseInstructionOverrides(
input: UseCaseInputInstructionOverrides(
throttle: UseCaseThrottleInstructions(
duration: const Duration(seconds: 1),
mode: UseCaseThrottleMode.leadingAndTrailing,
),
),
),
);
RefreshMetrics.executionKey должен обозначать dashboard или ресурс, чьи обновления принадлежат одной группе. Другой точный тип или ключ получает независимое окно.
Наблюдайте отклонения явно
Промежуточные Command передаются в onCommandRejected с причиной throttled и не попадают в конечную историю. Если каждое намерение обязано выполниться, нужен не Throttle, а последовательный режим обработки.