evt.getStatelessOp(op)
//invokeOperator allow calling any type of stateless operator and
//get a return as if the operator was a fλ
import { Evt, invokeOperator } from “evt”;
{
const evtPoint = new Evt<number>();
evtPoint.$attach(
[(point, sum) => [point + sum], 0],
sum => console.log(`sum: ${sum}`)
);
evtPoint.post(2); // Prints "sum: 2"
console.log(
invokeOperator(
evtPoint.getStatelessOp(
evtPoint.getHandlers()[0].op
),
2
)
); // Prints "[ 4 ]" ( 2 + 2 )
evtPoint.post(3); // Prints "sum: 5" ( the state was not affected )
}
{
const evtPoint = new Evt<number>();
evtPoint.attach(
point => point > 10,
point => { }
);
console.log(
invokeOperator(
evtPoint.getStatelessOp(
evtPoint.getHandlers()[0].op
),
5
)
); // Prints "null" ( 5 < 10 )
console.log(
invokeOperator(
evtPoint.getStatelessOp(
evtPoint.getHandlers()[0].op
),
15
)
); // Prints "[ 15 ]" ( 15 > 10 )
}Last updated