fn

Utilities for dealing with functions.

When requiring laxar, it is available as laxar.fn.

Contents

Module Members

Module Members

debounce( f, waitMs, immediate )

Underscore debounce with the following modifications: - automatically mocked when accessed through laxar/laxar_testing - the generated function provides a cancel() method

See http://underscorejs.org/#debounce for detailed documentation on the original version.

Note on testing:

You can set laxar.fn._nowMilliseconds and laxar.fn._setTimout to mock-functions in order to help testing components that use laxar.fn or to test laxar.fn itself.

Parameters
Property Type Description
f Function the function to return a debounced version of
waitMs Number milliseconds to debounce before invoking f
immediate Boolean if true f is invoked prior to start waiting waitMs milliseconds. Otherwise f is invoked after the given debounce duration has passed. Default is false
Returns
Type Description
Function a debounced wrapper around the argument function f, with an additional method cancel(): After cancel() has been called, f will not be invoked anymore, no matter how often the wrapper\ is called.

later( _force )

Check if the debounced function is ready for execution, and do so if it is.

Parameters
Property Type Description
_force Boolean This is only relevant when mocking fn._setTimeout to implement a force/flush for tests. If the parameter is passed as true, no timing checks are performed prior to execution.

_nowMilliseconds()

Get the current time in milliseconds. This API is intended to be used from tests only.

Returns
Type Description
Number the current time in milliseconds (Date.now()). Ovewrride this from tests for reproducible results.

_setTimeout()

By default, invoke window.setTimeout with the given arguments.