RxJs在事件上重复链

时间:2018-10-15 09:54:56

标签: javascript angular rxjs

我有一些冷RxJs可观察到,我想在发生某些事件click $时刷新并再次从服务器获取数据。

Title

我应该使用什么运算符代替虚构的REPEAT_ON运算符?

我可以使用此代码实现

let files$ = param$.pipe(
  param => http.getFolder(param),
  folder => http.getFolderFiles(folder),
  REPEAT_ON(click$)
  takeUntil(this.destroy$)
)

但是它闻起来很不好,我认为CombineLatest不适合我的用例。

2 个答案:

答案 0 :(得分:2)

combineLatest没什么问题,但是我认为您要查找的是repeatWhen运算符。

const array$ = Observable.from(["arr1", "arr2", "arr3", "arr4"]).do(console.log);
const click$ = Observable.fromEvent(document, 'click');

array$
    .repeatWhen(() => click$)
    .subscribe();

这里是一个示例:https://codepen.io/anon/pen/EdbPoV

答案 1 :(得分:0)

为什么不呢?

const httpRequest = new XMLHttpRequest()
httpRequest.open('POST', 'http://localhost:8080/api/restaurant/load', true)
httpRequest.responseType = "arraybuffer"
httpRequest.send(requestBytes)