How to delay forkJoin

前端 未结 3 1885
情话喂你
情话喂你 2021-01-17 01:01

How would you delay .forkJoin() in rxjs?

Here is what I\'ve got but want to use delay() operator with that?

return forkJoin(
   this.cal         


        
相关标签:
3条回答
  • 2021-01-17 01:20

    Try thiz

    import { delay } from 'rxjs/operators';
    
    return forkjoin(call1(),call2(),call3).pipe(delay(500));
    
    0 讨论(0)
  • 2021-01-17 01:39

    Maybe this more complete example will help you find the solution you need:

    import { delay } from 'rxjs/operators';
    import { Observable } from "rxjs";
    import { forkJoin } from 'rxjs/observable/forkJoin';
    
    function call1(): Observable<any> {
      return new Observable<any>(observer => {
        setTimeout(_ => {
          observer.next('CALL1');
          observer.complete();
        }, 1000);
      })
    }
    function call2(): Observable<any> {
      return new Observable<any>(observer => {
        setTimeout(_ => {
          observer.next('CALL2');
          observer.complete();
        }, 2000);
      });
    } 
    function call3(): Observable<any> {
      return new Observable<any>(observer => {
        setTimeout(_ => {
          observer.next('CALL3');
          observer.complete();
        }, 3000);
      })
    }
    
    forkJoin(call1(), call2(), call3()).pipe(delay(5000)).subscribe(
      response => console.log(response)
    )
    
    0 讨论(0)
  • 2021-01-17 01:40

    use the delay operator withe the pipe operator

    import { delay, take } from 'rxjs/operators';
    import { forkJoin } from 'rxjs/observable/forkJoin';
    import { of } from 'rxjs/observable/of';
    
    return forkJoin(
       of(call1()).pipe(delay(1000)),
       of(call2()).pipe(delay(2000)),
       of(call3()).pipe(delay(1000))
     );
    
    0 讨论(0)
提交回复
热议问题