调用两个 REST 服务并在 return 之前等待两者的函数

Function that calls two REST services and wait for both before return

我正在 Loopback4/NodeJS 中开发微服务,我需要并行调用两个 REST 服务,但 return 仅当两个 return 都调用时。在这种情况下,我需要从结果创建一个新对象,然后 return.

这是REST服务函数的签名:

getUserById(id: string, attributes: string | undefined, excludedAttributes: string | undefined): Promise<UserResponseObject>;

这就是我尝试做的方式(两次调用相同服务的示例代码):

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

    console.log('1st call')
    const r1 = this.userService.getUserById(userId, undefined, undefined);

    console.log('2nd call...')
    const r2 = this.userService.getUserById(userId, undefined, undefined);

    await Promise.all([r1, r2]).then(function (results) {
      return results[0];
    });
  }

但它 return 什么都没有 (204)。

我看到了一些周围的例子,但它对我的情况不起作用。我错过了什么?

提前致谢,

它正在做某事,它甚至返回状态代码 204,它代表 “无内容”(所有状态代码列表 here).所以状态代码几乎暗示没有要返回的内容。

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

    console.log('1st call')
    const r1 = this.userService.getUserById(userId, undefined, undefined);

    console.log('2nd call...')
    const r2 = this.userService.getUserById(userId, undefined, undefined);

    return await Promise.all([r1, r2]).then(function (results) {
      return results[0];
    });
  }