3

在我的角度数据服务中,我试图发出两个 http 请求,第二个请求取决于第一个请求中的数据。第一个请求工作正常,但由于某种原因,第二个请求永远不会到达我的后端服务器。我希望有人能告诉我我这样做是否正确或告诉我我做错了什么。

@Injectable()
export class DataService {

  constructor( private http: Http ) { }

public twoRequest() {
    this.http.get(`http://localhost:3000/1st_request`).subscribe((data) => 
      this.http.post(`http://localhost:3000/2nd_request`, {data: data}))
}

编辑:我没有订阅第二个请求。我不知道你必须订阅你提出的每个请求,即使它们在同一个代码块中

4

2 回答 2

3

你需要到subscribehttp.post。如果你不接受它,它永远不会发出请求subscribe

@Injectable()
export class DataService {

  constructor( private http: Http ) { }

  public twoRequest() {
     this.http.get(`http://localhost:3000/1st_request`).subscribe((data) => 
       this.http.post(`http://localhost:3000/2nd_request`, {data: data}).subscribe(/*...*/));
}
于 2017-09-05T04:54:19.453 回答
-1
public twoRequest() {
        this.http.get(`http://localhost:3000/1st_request`).subscribe((data) => {
            this.http.post(`http://localhost:3000/2nd_request`, {data:data})) 
               .subscribe((resp: any) => {
                 console.log(resp)
             })
           }

    }
于 2017-09-05T04:59:58.033 回答