EVT
GitHubHomePlaygroud
v2
v2
  • 🚀EVT Overview
  • 📖API Documentation
    • Evt<T>
      • Async iterator
      • evt.attach*(...)
      • evt.post*(data)
      • evt.waitFor(...)
      • evt.evt[Attach|Detach]
      • evt.pipe(...)
      • evt.getHandlers()
      • evt.isHandled(data)
      • evt.detach(ctx?)
      • evt.enableTrace(...)
      • evt.setMaxHandlers(n)
      • toStateful(initialState)
      • evt.getStatelessOp(op)
      • Evt.create(initalState?)
      • Evt.newCtx<T>()
      • Evt.getCtx(object)
      • Evt.from<T>(...)
      • Evt.merge([ evt1, evt2, ... ])
      • Evt.loosenType(evt)
      • Evt.factorize(evt)
      • Evt.asPostable(evt)
      • Evt.asNonPostable(evt)
      • Evt.setDefaultMaxHandlers(n)
    • Ctx<T>
    • Operator<T, U> (type)
    • StatefulEvt<T>
    • Helper types
    • Handler<T, U> (type)
  • 🪝React hooks
  • 🔩From EventEmitter to Evt
  • ⬆️v1 -> v2
Powered by GitBook
On this page
Edit on GitHub
  1. API Documentation
  2. Evt<T>

evt.getStatelessOp(op)

This is an advanced feature, it you are new to EVT you can skip this for now.

It is not always possible to manually invoke an operator attached to an Handler that you got using evt.getHandlers(). Indeed if the operator is stateful you can't provide the prev value. This function gives access to this state.

Because it is such an advanced feature we just provide an example as documentation:

//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 )

}
PrevioustoStateful(initialState)NextEvt.create(initalState?)

Last updated 2 years ago

********

📖
Run the example