如何在函数rxjs中使用Observable和Pipes?

时间:2019-01-23 12:06:40

标签: javascript angular rxjs observable

我试图让以下代码移入被调用的函数中,而不是通过本机元素click事件执行该操作:

const saveRit$ = Observable.fromEvent(this.saveRitbutton.nativeElement, 'click');
console.log('here', saveRit$);
saveRit$.pipe(
  withLatestFrom(this.account$)
).subscribe(([click, { accountId }]) => {
  console.log('working');
  this.saveRit(accountId).then(() => {
    const years = this.ritForm.controls['lineItems'].value.map(row => row.year);
    this.emitSuccess(years);
  });
});

我对管道的知识有限,并且可观察,因此任何输入都是惊人的。我知道我不再需要saveRit$变量,但是一旦删除.pipe(),该怎么办?我只想能够从某些函数中调用它。

1 个答案:

答案 0 :(得分:2)

由于Observable.fromEvent仅提供了一个Observable,因此我们可以将其替换为任何其他Observable。据我从您的摘要中可以看到,您想订阅this.account$

this.account$.subscribe(account => {
  console.log('working');
  this.saveRit(account.accountId).then(() => {
    const years = this.ritForm.controls['lineItems'].value.map(row => row.year);
    this.emitSuccess(years);
  });
});

祝你好运!