"use strict"; const timer = require("."); let someTimer = timer({ timeout: 500, onFire: () => { console.log("Fired 1"); someTimer.start({ onFire: () => { console.log("Fired 2"); } }); setTimeout(() => { someTimer.start({ timeout: 600, onFire: () => { console.log("Fired 3"); } }); }, 200); }, onCancel: () => { console.log("Cancelled!"); } }); someTimer.start(); /* After 500ms: Fired 1 200ms later: Cancelled! 600ms later: Fired 3 */