UNPKG

node-web-mvc

Version:
34 lines (33 loc) 1.12 kB
"use strict"; /** * @module Middlewares * @description 返回一个类似express中间件类型的中间件结果 */ Object.defineProperty(exports, "__esModule", { value: true }); class Middlewares { execute(req, resp, fallback) { return new Promise((resolve, reject) => { const request = req.nativeRequest; const response = resp.nativeResponse; const middlewares = [ ...this.middlewares, () => resolve(fallback === null || fallback === void 0 ? void 0 : fallback()), ]; const handler = middlewares.reverse().reduce((next, middleware) => { return () => { try { middleware(request, response, (ex) => (ex ? reject(ex) : next())); } catch (ex) { reject(ex); } }; }); handler(request, response, resolve); }); } constructor(middlewares) { this.middlewares = middlewares; } } exports.default = Middlewares;