完成一个可观察对象后开始执行可观察对象

时间:2019-05-17 13:16:10

标签: rxjs angular7

我是Angular 7的新手。我必须调用一个API并等待完成,然后开始执行应用程序中的每个HTTP请求。

(注意:实际的API应该在执行完第一次调用后开始执行。因此,在“网络内”标签中,调用应按进行排序)

<StarRatingComponent 
    name="rate1" 
    starCount={5}
    value={rating}
    onStarClick={this.onStarClick.bind(this)}
    onStarHover={this.star_over.bind(this)}
    onStarHoverOut={this.star_out.bind(this)}
    starColor={"Green"}
    emptyStarColor={empty}
    renderStarIcon={() => <Star className={classes.feedbackStar} />}
/>

我想处理服务本身中的beforeGetService()调用。我已经尝试过如下所示,但调用异步进行: Service.ts:

Service.ts :

getService(endpoint) {
     let url = 'https://jsonplaceholder.typicode.com'+endpoint;
     return this.http.get(url);
}

public beforeGetService() {
     return this.http.get('https://jsonplaceholder.typicode.com/todos/1');
}

Component.ts :

   this.service.getService('/users').subscribe((data)=>{
       console.log(data);
   });

   this.service.getService('/posts').subscribe((data)=>{
       console.log(data);
   });

Stackbitz链接:https://stackblitz.com/edit/angular-b3sxl5

调用的当前执行顺序,例如:

  1. https://jsonplaceholder.typicode.com/todos/1
  2. https://jsonplaceholder.typicode.com/todos/1
  3. https://jsonplaceholder.typicode.com/users
  4. https://jsonplaceholder.typicode.com/posts

预期的行为:

  1. https://jsonplaceholder.typicode.com/todos/1
  2. https://jsonplaceholder.typicode.com/users(要求在第一个通话完成后开始)
  3. https://jsonplaceholder.typicode.com/todos/1
  4. https://jsonplaceholder.typicode.com/posts(必须在第三个通话完成后才能开始)

0 个答案:

没有答案