如何在rxjs中延迟.forkJoin()
?
这是我得到的,但是想要使用delay()运算符吗?
return forkJoin(
this.call1(),
this.call2(),
this.call3()
);
到目前为止,我得到了这样的结论:
return of(null).pipe(
delay(5000),
switchmap(() => this.call1()),
switchmap(() => this.call2()),
switchmap(() => this.call3()))
);
这是有效的,但我想使用forkJoin,我尝试了其他解决方案
return forkJoin(
of(this.call1()).pipe(delay(5000)),
of(this.call2()).pipe(delay(5000)),
of(this.call3()).pipe(delay(5000))
);
但它似乎不起作用。
发布于 2018-06-21 05:53:45
将delay
运算符与pipe
运算符一起使用
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))
);
发布于 2018-06-21 05:59:07
试试thiz
import { delay } from 'rxjs/operators';
return forkjoin(call1(),call2(),call3).pipe(delay(500));
发布于 2018-06-21 06:10:02
也许这个更完整的例子会帮助你找到你需要的解决方案:
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)
)
https://stackoverflow.com/questions/50961190
复制相似问题