4

如果我尝试像这样返回特定类型的承诺:

public myMethod(): Promise<MyType> {
  return this.httpClient.get('/my/url').toPromise();
}

...我收到返回类型 Promise<Object> 与预期类型 Promise<MyType> 不匹配的错误。这很容易通过转换结果或这样做来解决:

public myMethod(): Promise<MyType> {
  return this.httpClient.get<MyType>('/my/url').toPromise();
}

但是,还有另一种选择,可以为 toPromise() 函数提供可选参数。我的 IDE 说参数的类型是“PromiseCtor: PromiseConstructorLike”或“PromiseCtor: typeof Promise”。

public myMethod(): Promise<MyType> {
  return this.httpClient.get('/my/url').toPromise(???);
}

我无法弄清楚什么语法会满足 ??? 然而,上面。

关于在这里可以填写什么作为有效论点的任何想法?

4

2 回答 2

0
public async myMethod(): MyType {
  return await <MyType>this.httpClient.get('/my/url').toPromise();
}
于 2018-12-21T14:35:16.253 回答
0

您需要在 get 方法中指定类型get<MyType>

public myMethod(): Promise<MyType> {
   return this.httpClient.get<MyType>('/my/url').toPromise();
}
于 2018-02-02T11:08:00.437 回答