dist/index.js
function react(request, effects, retryStrategy) {
        return reactWithLatest(function (state) {
            var requestInstance = request(state);
            return requestInstance != null
                ? [{ id: requestInstance, request: requestInstance }]
                : [];
        }, function (request, _, scheduler) { return effects(request, scheduler); }, retryStrategy);
    }
function react(request, effects, retryStrategy) {
        return reactWithLatest(function (state) {
            var requestInstance = request(state);
            return requestInstance != null
                ? [{ id: requestInstance, request: requestInstance }]
                : [];
        }, function (request, _, scheduler) { return effects(request, scheduler); }, retryStrategy);
    }
function react ( request , effects , retryStrategy ) { return reactWithLatest ( function ( state ) { var requestInstance = request ( state ) ; return requestInstance != null ? [ { id : requestInstance , request : requestInstance } ] : [ ] ; } , function ( request , _ , scheduler ) { return effects ( request , scheduler ) ; } , retryStrategy ) ; }
State: State type of the system.
Request: Subset of state used to control the feedback loop.

When `request` returns a value, that value is being passed into `effects` lambda to decide which effects should be performed.
In case new `request` is different from the previous one, new effects are calculated by using `effects` lambda and then performed.

When `request` returns `nil`, feedback loops doesn't perform any effect.

@param request The request to perform some effects.
@param effects The request effects.
@param retryStrategy The retry strategy for the effects in case an error happends.
@returns The feedback loop performing the effects.
State : State type of the system . Request : Subset of state used to control the feedback loop .