Combine Latest

// rxjs
  .combineLatest(
    this.recordService.formGroup.controls.LINETOTAL.valueChanges.pipe(
      rxjs.startWith(this.recordService.formGroup.controls.LINETOTAL.value)
    ),
    this.recordService.formGroup.controls.DISCOUNTPERCENT.valueChanges.pipe(
      rxjs.startWith(
        this.recordService.formGroup.controls.DISCOUNTPERCENT.value
      )
    ),
    this.recordService.formGroup.controls.DISCOUNTAMOUNT.valueChanges.pipe(
      rxjs.startWith(this.recordService.formGroup.controls.DISCOUNTAMOUNT.value)
    )
  )
  .pipe(
    rxjs.debounceTime(1000),
    rxjs.distinctUntilChanged(
      (
        [oldLineTotal, oldDiscountPercent, oldDiscountAmount],
        [newLineTotal, newDiscountPercent, newDiscountAmount]
      ) => {
        return (
          oldLineTotal === newLineTotal &&
          oldDiscountPercent === newDiscountPercent &&
          oldDiscountAmount === newDiscountAmount
        );
      }
    ),
    rxjs.takeUntil(this.isDestroy$)
  )
  .subscribe(async ([LINETOTAL, DISCOUNTPERCENT, DISCOUNTAMOUNT]) => {
    
  });

Last updated