diff options
author | Sam Wilkins <35748010+samwilkins333@users.noreply.github.com> | 2019-10-17 04:19:02 -0400 |
---|---|---|
committer | Sam Wilkins <35748010+samwilkins333@users.noreply.github.com> | 2019-10-17 04:19:02 -0400 |
commit | 8884e5cf68c3ad34e23a539201fddda169d70262 (patch) | |
tree | bfc0af5ec4d271f8c1850d734224dc570d823dc0 | |
parent | df7ed1e41472909e802116adaa285281ec7588ee (diff) |
tweak timeout for fallback response
-rw-r--r-- | src/server/RouteManager.ts | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/src/server/RouteManager.ts b/src/server/RouteManager.ts index 54f9cc460..37eaded0d 100644 --- a/src/server/RouteManager.ts +++ b/src/server/RouteManager.ts @@ -55,10 +55,9 @@ export default class RouteManager { let supervised = async (req: express.Request, res: express.Response) => { const { user, originalUrl: target } = req; const core = { req, res, isRelease }; - const tryExecute = async <T>(target: (args: any) => T | Promise<T>, args: any) => { + const tryExecute = async (target: (args: any) => any | Promise<any>, args: any) => { try { - const result = await target(args); - return result; + await target(args); } catch (e) { if (onError) { onError({ ...core, error: e }); @@ -71,16 +70,18 @@ export default class RouteManager { await tryExecute(onValidation, { ...core, user: user as any }); } else { req.session!.target = target; - if (!onUnauthenticated) { - res.redirect(RouteStore.login); - } else { + if (onUnauthenticated) { await tryExecute(onUnauthenticated, core); + } else { + res.redirect(RouteStore.login); } } - const warning = `request to ${target} fell through - this is a fallback response`; - if (!res.headersSent) { - res.send({ warning }); - } + setTimeout(() => { + if (!res.headersSent) { + const warning = `request to ${target} fell through - this is a fallback response`; + res.send({ warning }); + } + }, 1000); }; const subscribe = (subscriber: RouteSubscriber | string) => { let route: string; |