我有以下HttpClient.post
调用,它返回一个对象数组。
import { map } from 'rxjs/operators/map';
public getArray(profileId: number): Observable<any> {
return this.http.post("/api/url", postObject, HttpSettings.GetDefaultHttpRequestOptions())
.pipe(map(data => {
console.log(data); // logs (2) [{…}, {…}]
return data;
}));
}
我需要实例化一个对象数组。我不能只键入断言,因为我需要Thing
构造函数来解析一些json
和其他
基本上我想做的是:
.pipe(map(data => {
console.log(data); // logs (2) [{…}, {…}]
return data.map(v => new Thing(v));
}));
但是我不能(据我所知(,因为data
属于 ArrayBuffer
型并且不可迭代。我怎样才能做到这一点?
数据实际上是如何从服务器发送的?是json
还是别的什么?如果是json
请尝试在 HttpClient
的调用中使用 options
参数中的responseType:'json'
指定它(请参阅文档(。
import { map } from 'rxjs/operators/map';
public getArray(profileId: number): Observable<Thing[]> {
var options = HttpSettings.GetDefaultHttpRequestOptions();
options.responseType = 'json';
return this.http.post("/api/url", postObject, options)
.pipe(map(data => data.map(v => new Thing(v))));
}