How to make a sequence of http requests in Angular 6 using RxJS

前端 未结 4 1167
不思量自难忘°
不思量自难忘° 2020-12-03 16:10

I\'ve been looking for a solution all over the web, but couldn\'t find anything that fits my user case. I\'m using the MEAN stack (Angular 6) and I have a registration form.

4条回答
  •  长情又很酷
    2020-12-03 16:15

    import { HttpClient } from '@angular/common/http';
    import { Injectable } from '@angular/core';
    import { Observable } from 'rxjs/Observable';
    import 'rxjs/add/observable/forkJoin';
    
    @Injectable()
    export class DataService {
    
      constructor(private http: HttpClient) { }
    
      public requestDataFromMultipleSources(): Observable {
        let response1 = this.http.get(requestUrl1);
        let response2 = this.http.get(requestUrl2);
        let response3 = this.http.get(requestUrl3);
        return Observable.forkJoin([response1, response2, response3]);
      }
    }
    
    The above example shows making three http calls, but in a similar way you can request as many http calls as required
    
        import { Component, OnInit } from '@angular/core';
    import { DataService } from "../data.service";
    
    @Component({
        selector: 'app-page',
        templateUrl: './page.component.html',
        styleUrls: ['./page.component.css']
    })
    export class DemoComponent implements OnInit {
        public responseData1: any;
        public responseData2: any;
        public responseData3: any;
    
        constructor(private dataService: DataService) {}
    
        ngOnInit() {
            this.dataService.requestDataFromMultipleSources().subscribe(responseList => {
                this.responseData1 = responseList[0];
                this.responseData2 = responseList[1];
                this.responseData3 = responseList[1];
            });
        }
    }
    

提交回复
热议问题