Angular return [对象对象]
Angular return [object Object]
我正在尝试发送 post 请求。但是 API returns 未定义,我将它发送到我的 API,结果是 [object Object]
getAccouting():Observable<any>{
// let json = this.http.get<any>('/assets/cities/altayskiy_kray/accounting.json'); if i use it json return undefined
let json;
this.http.get('/assets/cities/altayskiy_kray/accounting.json').pipe(data=>json=data);
let formData:FormData = new FormData;
formData.append('json', json);
return this.http.post<any>('http://api/api.php', formData);
}
如何解决?
http.get
是异步的,所以它不会在 return 之前发出 http.post
。因此,json
将是未定义的。
相反,您可以链接它们并 return 整个可观察对象:
getAccouting(): Observable<any>{
return this.http.get('/assets/cities/altayskiy_kray/accounting.json').pipe(
switchMap(json => {
return this.http.post<any>('http://api/api.php', json);
}
);
}
是否需要使用FormData
?如果您追加 json
对象,那么您将获得它的字符串值:[object Object]
.
您可以将 json
对象字符串化,但您必须在服务器上对其进行解码:
formData.append('json', JSON.stringify(json))
我正在尝试发送 post 请求。但是 API returns 未定义,我将它发送到我的 API,结果是 [object Object]
getAccouting():Observable<any>{
// let json = this.http.get<any>('/assets/cities/altayskiy_kray/accounting.json'); if i use it json return undefined
let json;
this.http.get('/assets/cities/altayskiy_kray/accounting.json').pipe(data=>json=data);
let formData:FormData = new FormData;
formData.append('json', json);
return this.http.post<any>('http://api/api.php', formData);
}
如何解决?
http.get
是异步的,所以它不会在 return 之前发出 http.post
。因此,json
将是未定义的。
相反,您可以链接它们并 return 整个可观察对象:
getAccouting(): Observable<any>{
return this.http.get('/assets/cities/altayskiy_kray/accounting.json').pipe(
switchMap(json => {
return this.http.post<any>('http://api/api.php', json);
}
);
}
是否需要使用FormData
?如果您追加 json
对象,那么您将获得它的字符串值:[object Object]
.
您可以将 json
对象字符串化,但您必须在服务器上对其进行解码:
formData.append('json', JSON.stringify(json))