DevPrep

Все темы › Combine

Что такое backpressure/demand в Combine?

Senior PRO

Суть

Backpressure — механизм, которым медленный потребитель сдерживает быстрого производителя. В Combine он реализован через demand: подписчик явно сообщает издателю, сколько значений готов принять (Subscribers.Demand — .none, .max(n), .unlimited), и издатель по контракту не имеет права прислать больше. Demand накапливается: каждое request(.max(n)) прибавляется к текущему, а возвращаемое значение из receive(_:) докупает ещё. Это pull-модель поверх push-доставки.

Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.

Полный ответ — в DevPrep

Потренируйтесь перед собеседованием

В DevPrep эти ответы превращаются в задачи на минуту: что напечатает код, найди баг, пробное собеседование. По задаче в день.

Скачать DevPrep в App Store