Остановить функцию express после того, как ответ уже отправлен - PullRequest
0 голосов
/ 05 марта 2020

я довольно новый в. js и .ts и, следовательно, также в express. js. У меня есть следующие строки кода:

    private post = async ( request: express.Request, response: express.Response, next:express.NextFunction) => 
{
    await this.myfunction(next) ? console.log("Do nothing") : console.log("end function/request/response");
    await this.anotherfunction();
    }

и моя функция выглядит следующим образом:

private myfunction = async (next: express.NextFunction): Promise<boolean> => {

let temp: boolean = false;

if(temp){
  return true;
} else {
  next(
      new HttpException(404, "just an example error")
    );
  return false;
}

Функция HttpException встроена как здесь: https://wanago.io/2018/12/17/typescript-express-error-handling-validation/

Моя проблема: Когда я запускаю свою функцию post, this.myfunction будет выполняться, и в консоли будет напечатано «function / request / response». После этого this.anotherfunction () будет выполнен. Но я хочу, чтобы, если я получаю false в качестве возврата из this.myfunction, то this.anotherfunction () не будет выполняться и мой входящий запрос будет остановлен / отменен, потому что я уже отправил ответ своему конечному пользователю в this.myfunction ()

Как мне это сделать?

1 Ответ

0 голосов
/ 05 марта 2020

Разве вы не можете просто это сделать?

const result = await this.myfunction(next);
if(result) {
 await this.anotherfunction();
}

и лучше отправить res.send в конце.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...