I noticed that the section on allSatisfy says that the operator only publishes a value once the upstream publisher finishes. However, allSatisfy actually short-circuits in the same way containsWhere does, immediately publishing false and finishing once the predicate returns false.
When this publisher receives an element, it runs the predicate against the element. If the predicate returns false, the publisher produces a false value and finishes. If the upstream publisher finishes normally, this publisher produces a true value and finishes.
I noticed that the section on
allSatisfy
says that the operator only publishes a value once the upstream publisher finishes. However,allSatisfy
actually short-circuits in the same waycontainsWhere
does, immediately publishingfalse
and finishing once the predicate returns false.The Apple documentation does specify this behaviour: