首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角6嵌套HTTP调用嵌套调用永不执行

问角6嵌套HTTP调用嵌套调用永不执行
EN

Stack Overflow用户
提问于 2018-11-02 23:19:32
回答 1查看 967关注 0票数 0

在角6中工作,我有两个HTTP调用,需要串联执行。第一个调用成功,第二个调用表示成功,但从未实际发出HTTP请求。

如果我分开这两个调用并单独执行它们,它们都可以工作。然而,当将它们串联在一起时,第二次调用就无法工作。

这里的一般想法是从服务器请求一个签名的URL,并在收到后将一个文件上传到指定的URL。

代码语言:javascript
复制
export class StaticAssetService {
  constructor(private httpClient: HttpClient) { }

  public uploadAsset(assetType: StaticAssetType, file: File): Observable<any> {
    if (file) {
      return this.httpClient.get(`${environment.apiURI}/secure/file-upload/getPresignedURLForUpload.json`, {
        params: {
          assetType: assetType,
          originalFileName: file.name
        }
      }).pipe(map(response => {
        return this.httpClient.put(response.signedURL, file, {
          headers: new HttpHeaders({'Content-Type': file.type}),
          reportProgress: true
        })
      }));
    }
  }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-02 23:32:33

不推荐使用上述语法嵌套HTTP调用。相反,有一些特定的RxJS操作符(类似于map),它们专门用于串联执行HTTP调用。

批注推荐的switchMap就是这些操作符之一。下面是一个示例:

Angular4 - Nested Http Calls

以下是一些可能有帮助的文章:

https://medium.com/@juliapassynkova/switchmap-in-details-b98d34145311

https://blog.angular-university.io/rxjs-higher-order-mapping/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53126899

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档