[BUGFIX] sync router.js: es3-safe `promise.catch()`