• A utility decorator for smoothing out changes in upstream data between refreshes / reload.

    Example

    when using [[RemoteData]] (or some other promise-based "eventually a value" resource), the value returned from the API is what's useful to see to users. But if the URL changes, the remote request will start anew, and isLoading becomes true, and the value is falsey until the request finishes. This can result in some flicker until the new request finishes.

    To smooth that out, we can use [[keepLatest]]

     import { RemoteData } from 'ember-resources/util/remote-data';
    import { keepLatest } from 'ember-resources/util/keep-latest';

    class A {
    @use request = RemoteData(() => 'some url');
    @use data = keepLatest({
    value: () => this.request.value,
    when: () => this.request.isLoading,
    });

    get result() {
    // after the initial request, this is always resolved
    return this.data;
    }
    }

    Type Parameters

    • Return = unknown

    Parameters

    • __namedParameters: Options<Return>

    Returns undefined | Return

Generated using TypeDoc