返回POST请求响应后运行方法

时间:2020-01-20 18:46:16

标签: node.js asynchronous async-await controller nestjs

我对JS还是很陌生,并且将NestJS与mongo结合使用来开发后端api。我有一个基本的CRUD操作。我希望能够创建文档,将其返回给用户并运行另一种方法而不影响用户。

  @Post()
  async create(@Body() body: Dto, @Headers('id') id: string) {   
    body.id = id;    
    const item = await this.service.create(body);
    return item;

  // Now, I want to call another method async to trace history changes 
  }

3 个答案:

答案 0 :(得分:0)

有两种解决方法

答案 1 :(得分:0)

如果您使用的是TypeORM,一种干净的方法是使用实​​体侦听器或订阅者。这使您可以运行代码“ afterInsert”:https://github.com/typeorm/typeorm/blob/master/docs/listeners-and-subscribers.md

答案 2 :(得分:0)

您可以将调用添加到另一个异步方法

@Post()
async create(@Body() body: Dto, @Headers('id') id: string) {   
  body.id = id;    
  const item = await this.service.create(body);
  this.service.anotherAsyncMethod(); 

  return item;
}