Nodejs - 来自 promise.then() 内部的 Return

Nodejs - Return from inside promise.then()

继续在 NodeJS 的新世界中发展,我正在尝试做一些看似平常但行不通的事情。

我有一个调用 HTTP/REST:

的服务包装器
getUserById(id: string, attributes: string | undefined, excludedAttributes: string | undefined): Promise<any>;

这是我称之为的地方:

  async getUserById(@param.path.string('userId') userId: string): Promise<Usuario> {

    console.log('1st call')
    return await this.userService.getUserById(userId, undefined, undefined).then(result => {
      var user: Usuario = {};
      
      user.cpf = result?.username;
      user.id = result?.id;
      user.nome = result?.name?.formatted;
      
      return user;
    })

  }

但它returns没什么。当然,响应时间有问题,我的意思是,功能在服务调用完成之前返回。

我做了类似的 ,但它调用了两个服务,等待两者然后 returns。相反,这种情况只调用一个服务,创建一个有效负载和 returns.

怎么了?提前致谢。

你可以不用 then,正如@Phix 提到的:

async getUserById(@param.path.string('userId') userId: string): Promise<Usuario> {

  const result = await this.userService.getUserById(userId, undefined, undefined);
  var user: Usuario = {};
  
  user.cpf = result?.username;
  user.id = result?.id;
  user.nome = result?.name?.formatted;
  
  return user;

}