ВУ
ПРОЕКЦИИ могут быть не только left fold стрима, они могут так же на основе этого left fold кидать новые события. Например
projection
.on(stream)
.partitionBy(({customerId}) => customerId)
.init(() => 0)
.on('OrderConfirmed', (numberOfOrders, emit) => {
numberOfOrders++
if (numberOfOrders === 3) {
emit(customerPurchasedThreeOrders())
numberOfOrders = 0
}
return numberOfOrders
}