小编ptm*_*tmn的帖子

在Typescript / JavaScript中解开Promise对象

我是JavaScript / TypeScript Promise返回类型的新手。

问题是我托管了一个REST API终结点,该终结点在内部从另一个服务中调用另一个API,该服务使用JS Request模块返回一个Promise对象。

我想打开内部API承诺响应,并创建一个新的普通Typescript对象,最后返回新的修改后的响应对象,而不是Promise。

这是描述我的问题的示例代码:

export class SampleClass {
 public process(): NewResponse {
    const newResponse: NewResponse = new NewResponse();
    // invokeOtherAPI() call Returns a Promise by invoking a different endpoint
    invokeOtherAPI().then(function (result) {
        newResponse.propertyOne = result.propertyOne;
        newResponse.propertyTwo = result.propertyTwo;
    });
    return newResponse;
}}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,虽然在then()内部分配了process(),但它仍返回一个空值。

这是我的REST API控制器类(缺少路径装饰器)

export class SampleController() {
  const service: SampleClass = new SampleClass();
  public get(): NewResponse {
     return service.process();
  }
}
Run Code Online (Sandbox Code Playgroud)

问题:

  1. 始终从Typescript API返回Promise对象是一种好习惯吗?
  2. 有没有一种方法可以在内部解开Promise对象并从API返回非Promise对象?

感谢您对此的任何帮助。

javascript rest promise typescript

5
推荐指数
1
解决办法
3728
查看次数

标签 统计

javascript ×1

promise ×1

rest ×1

typescript ×1