Один из способов сделать это - создать рабочий класс, который вызывает событие, когда оно будет завершено.
выполнить рабочий класс в новом аде, чтобы он запускал его backgroud.
создать модальную форму с помощью метода, чтобы закрыть ее как обработчик события для «завершенного» события. Таким образом, ui все еще работает и отвечает, и форма закрывается после завершения рабочего потока.
Это не поддерживается, но я понимаю, зачем это нужно. Мы не можем передать httpContext промежуточному программному обеспечению в качестве аргумента, потому что мы хотим обеспечить совместимость стандартного промежуточного программного обеспечения Express. Это означает, что единственный вариант - сделать что-то наподобие того, что вы сделали, но в идеале мы должны инкапсулировать это с помощью некоторого помощника.
Нам нужно реализовать что-то вроде следующей функции getHttpContext
:
import * as express from "express";
import { getHttpContext } from "inversify-express-utils";
function authMiddlewareFactory() {
return (config: { role: string }) => {
return (
req: express.Request,
res: express.Response,
next: express.NextFunction
): void => {
const httpContext = getHttpContext(req);
const principal: interfaces.Principal = httpContext.user;
if (!principal.isInRole(config.role)) {
res.sendStatus(HttpStatus.UNAUTHORIZED);
return;
}
next();
};
};
}
Пока это не реализовано, я не вижу никаких проблем с вашей реализацией, кроме утечки информации внутренних компонентов. 114]