user_CGachyu6

user_CGachyu6 查看完整档案

填写现居城市  |  填写毕业院校  |  填写所在公司/组织填写个人主网站
编辑
_ | |__ _ _ __ _ | '_ \| | | |/ _` | | |_) | |_| | (_| | |_.__/ \__,_|\__, | |___/ 该用户太懒什么也没留下

个人动态

user_CGachyu6 赞了回答 · 9月21日

解决angular6项目,有30个请求,根据用户配置抽取n个请求发送,待收到全部结果后执行后续操作。

Angular httpClient 返回的 observable 是 cold 的,没人 subscribe 是不会发出去的。你就大大方方准备好 30 个 request 然后根据配置筛选出你需要的,然后用rxjs的 forkJoin/zip/combineLatest 再 subscribe 总的结果就 ok.

let requests = [];
for(let i=0; i<30; i++) {
    requests.push(this.httpClient.get(`/url`,{params: new HttpParams({id: i})}));
}

let selected = [0,1,2,3,7,8,12];
let selectedRequests = selected.map(index => requests[index]);

forkJoin(selectedRequests)
    .subscribe(data => {
       // data 
        this.btnDisabled = false;
    })

另外,为什么要发多个请求呢?让这个 API 能接受多个参数不就 ok 么?发一个请求就行。

关注 3 回答 3

user_CGachyu6 提出了问题 · 9月14日

解决angular6项目,有30个请求,根据用户配置抽取n个请求发送,待收到全部结果后执行后续操作。

angular6项目,有30个显示块,根据用户配置显示n个并发送请求获得需要的数据,待收到全部结果后,编辑按钮变由disabled变为enabled。

关注 3 回答 3

认证与成就

  • 获得 0 次点赞
  • 获得 2 枚徽章 获得 0 枚金徽章, 获得 0 枚银徽章, 获得 2 枚铜徽章

擅长技能
编辑

(゚∀゚ )
暂时没有

开源项目 & 著作
编辑

(゚∀゚ )
暂时没有

注册于 9月14日
个人主页被 29 人浏览