【发布时间】:2022-01-19 14:27:49
【问题描述】:
我正在尝试发送发布请求。但是 API 返回未定义,我将它发送到我的 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);
}
如何解决?
【问题讨论】:
-
如何使用管道请参见第二个答案
this.http.get().pipe( mergeMap(response: Response => this.http.get(response.doSomething()) )。switchMap()运算符的文档也是一个很好的起点 learnrxjs.io/learn-rxjs/operators/transformation/switchmap -
克里斯托夫,不,这不是答案,那行不通:(
-
“不起作用”无助于为您提供更好的答案。链接的答案显示了如何进行两个异步 http 调用的基础知识,您确实需要了解基础知识。假设您现在知道如何进行多个 http 调用,那么您的代码现在看起来如何以及究竟是什么不工作?
-
如果我使用 this.http.get(),则会收到错误“需要 uri 的参数”。如果我添加,如上所述,然后mergeMap抛出错误:“类型参数”(json:ArrayBuffer)=> void“不能分配给类型参数”(值:ArrayBuffer,索引:数字)=> ObservableInput”。类型“void”不能分配给类型“Observable Input
”.ts(2345)”,但除此之外我还写了“mergeMap(json=>”
标签: angular typescript rxjs