idiomatically refactoring jr controller

I am trying to copy the Erlang idiom of "calling" another process through a
function call interface. That is, suppose I have two named processes
corresponding to modules `caller` and `callee`

caller.erl:

    foo() ->
        Result = callee:get_some_data(),
        do_something_with(Result).

callee.erl:
    get_some_data() ->
        gen_server:call(?MODULE, get_some_data)

    handle_call(get_some_data, CalleeState) ->
        {Result, NewState} = do_get_some_data(CalleeState),
        {reply, Result, NewState}.

I'm trying to replicate that in JS, because it's definitely the most pleasant
idiom for having different processes "talk" to each other.  This also allows
the callee process to define an API that black-boxes away the internal
messaging structure, thus giving the developer the flexibility to change that
internal messaging structure without breaking the calling code.
This commit is contained in:
2023-08-01 15:15:15 -06:00
parent b3eba95520
commit 1e80a53051
5 changed files with 281 additions and 1743 deletions
+1
View File
@@ -1 +1,2 @@
dist
src/jex_include