Skip to content

toObserver

Category
Export Size
88 B
Package
@vueuse/rxjs
Last Changed
4 years ago

Sugar function to convert a ref into an RxJS Observer. Available in the @vueuse/rxjs add-on.

Usage

ts
import { ref } from 'vue'
import { from, fromEvent, toObserver, useSubscription } from '@vueuse/rxjs'
import { interval } from 'rxjs'
import { map, mapTo, startWith, takeUntil, withLatestFrom } from 'rxjs/operators'

const count = ref(0)
const button = ref<HTMLButtonElement>(null)

useSubscription(
  interval(1000)
    .pipe(
      mapTo(1),
      takeUntil(fromEvent(button, 'click')),
      withLatestFrom(from(count).pipe(startWith(0))),
      map(([curr, total]) => curr + total),
    )
    .subscribe(toObserver(count)), // same as ).subscribe(val => (count.value = val))
)
js
import { ref } from 'vue'
import { from, fromEvent, toObserver, useSubscription } from '@vueuse/rxjs'
import { interval } from 'rxjs'
import {
  map,
  mapTo,
  startWith,
  takeUntil,
  withLatestFrom,
} from 'rxjs/operators'
const count = ref(0)
const button = ref(null)
useSubscription(
  interval(1000)
    .pipe(
      mapTo(1),
      takeUntil(fromEvent(button, 'click')),
      withLatestFrom(from(count).pipe(startWith(0))),
      map(([curr, total]) => curr + total),
    )
    .subscribe(toObserver(count)),
)

Type Declarations

typescript
export declare function toObserver<T>(value: Ref<T>): NextObserver<T>

Source

SourceDocs

Contributors

Anthony Fu
Theodros Zelleke
Curt Grimes
yang
Michel Betancourt

Changelog

No recent changes

Released under the MIT License.

Free AI Workshop
Build smarter apps with LLMs, agents, MCPs, and advanced AI tooling
Boost Your Workflow
July 8