repre
v0.1.0
Published
Recurring (looping until succeeded) promise.
Downloads
1
Readme
repre
Recurring (looping until succeeded) promise.
API
Get the class with var Repre = require('repre')
.
var repre = new Repre(factoryFn, step = 100)
Creates new recurring promise. You must pass the factory function to the constructor. This factory is used when looping.
repre.loop()
The factory function will create the promise
that it is tried to resolve; in case of rejection,
another try is done after step
ms, over and over.
repre.stop()
Signals the actually looping promise that it should not
start another iteration in case of rejection; and returns it.
This signals that looping should stop, and the original promise
(as well as .stop()
which just returns it) evetually either
resolve or reject.
Calling stop()
for already noniterating (resolved
or stopped before) Repre is safe and immediately resolves.
repre.stopAndForget()
Returns repre.stop().catch(noop)
, that is,
stopAndForget
returns a promise which is
resolved whenever running promise is settled,
no matter if by resolving or by rejection.
Uses
Useful in functional tests, for example using WebDriver.
One sets up a scenario and then returns a Repre which
tries to read all things that eventually appear in a page
up to final assertions; plus setTimeout(() => repre.stop(), someTimeBeforeTestTimesOut)
.
That way, things are tried until either resolved,
or they are rejected (with correct error) just before test would time out.
It is also good to call repre.stopAndForget().then(...)
in afterEach
.