来自api的foreach obj如何提出另一个请求

时间:2018-01-08 00:42:44

标签: javascript angular typescript ionic3

我的第一篇帖子看起来像

this.http.post('http://localhost:8080/api/userfilm/get/', {
      name: this.name })

并返回具有名为filmid的属性的对象数组。我的第二个帖子请求看起来像

this.http.post('http://localhost:8080/api/post/get/', {
        filmid: film.filmid })

我真的不知道我怎么能一个接一个地做到这一点。例如

getAllPosts() {
    return this.http.post('http://localhost:8080/api/userfilm/get/',
        { name: this.name })
    .flatMap((film: any) => 
        this.http.post('http://localhost:8080/api/post/get/', 
        { filmid: film.filmid }))
    }


this.getAllPosts().subscribe(response => {
        console.log(response);
      })

但这不是正确的回报

1 个答案:

答案 0 :(得分:0)

您可以像这样实施

this.http.get("https://jsonplaceholder.typicode.com/users")
      .map(res => res.json())
      .mergeMap((customers: any[]) => {
        if (customers.length > 0) {
          return Observable.forkJoin(
            customers.map((customer: any) => {
              return this.http.get('https://jsonplaceholder.typicode.com/users/' + customer.id)
                .map((res: any) => {
                  return res.json();
                });
            })
          );
        } else {
          return Observable.of([]);
        }
      }).subscribe(res => console.log(res));