Simple exponential backoff because the others seem to have weird abstractions.
It's based on backo2, The difference is as follows.
- Rewrite with TypeScript
- Fixed the bug that duration() might return 0 when called many times with jitter parameters
$ npm install backo3mininitial timeout in milliseconds [100]maxmax timeout [10000]jitter[0]factor[2]
var Backoff = require('backo3');
var backoff = new Backoff({ min: 100, max: 20000 });
setTimeout(function(){
something.reconnect();
}, backoff.duration());
// later when something works
backoff.reset()MIT