.delay(for: 2, scheduler: RunLoop.main)
, скорее всего, именно то, что вам нужно, но будет важно увидеть, как вы подписываетесь, чтобы полностью понять проблему. Задержка не задерживает отправку значения при использовании send()
с темой - это ссылка на императивный код и отправляет данные всякий раз, когда вызывается send
, как правило, для какой-то уже существующей подписки.
Хотя у вас есть подписчик в первом бите кода, нет ни одного, с которым можно связать их вместе.
Например, если вы обновили:
Just(false).dropFirst().eraseToAnyPublisher()
* От 1012 * до
Just(false).dropFirst().eraseToAnyPublisher().delay(for: 2, scheduler: RunLoop.main)
Тогда оператор print должен сработать через ~ 2 секунды после вызова init (). В зависимости от того, что вы пытаетесь выполнить здесь sh, использование триггера закрытия, такого как onAppear
, может сделать намного больше отправки, имея этот вызов subject.send()
, который вы затем можете отложить как Вам нравится цепочка издателей, которая случается до того, как на нее подписывается.