【发布时间】:2019-06-28 21:10:54
【问题描述】:
我有一个返回字符串数组 (json) 的 API 端点,我正在尝试创建一个通过 Angular 服务吐出内容的页面。到目前为止,这是我所拥有的(我在 Angular 7 上):
export class FieldService {
constructor(private httpClient: HttpClient) { }
fieldTypesURL = 'http://localhost:3000/fields/types';
public getTypes(): Observable<any[]> {
return this.httpClient.get<any[]>(this.fieldTypesURL)
.pipe(map((response: any) => response.json()),
catchError((error: any) => Observable.throw(error.json().error || 'Server error')));
}
}
我得到的编译错误如下:
Type 'Observable<any[]>' is missing the following properties from type 'Promise<string[]>': then, catch, [Symbol.toStringTag], finally
为什么在我尝试使用 Observable 时在这里提到 Promise?欢迎任何想法!
【问题讨论】:
-
我认为在这种情况下你可以跳过
pipe,代码看起来不错 -
使用 httpClient 不需要 response.json()
-
你使用的是什么版本的 TypeScript? (在你的 package.json 文件中定义)
-
我正在使用 Typescript 版本:~3.2.2
-
您显然正在尝试将 getTypes() 返回值分配给您定义为 Promise
标签: angular typescript