delay는 publisher에 인위적인 지연을 일으키는 Operator에요.
debounce와 마찬가지로 여러 입력값이 있을 때를 가정해서 시뮬레이션 해볼게요.
이번에는 DispatchQueue의 글로벌 큐를 사용할게요.
let subject = PassthroughSubject<String, Never>()
subject
.delay(for: .milliseconds(1000), scheduler: DispatchQueue.global())
.sink { value in
print(value)
}
.store(in: &cancellables)
subject.send("H")
subject.send("He")
subject.send("Hel")
subject.send("Hell")
subject.send("Hello")
// 결과 (글로벌큐 영향으로 순서 무시됨)
H
He
Hel
Hello
Hell