Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
767 views
in Technique[技术] by (71.8m points)

rxjs - Create one-time subscription

I need to create a subscription to an Observable that is immediately disposed of when it is first called.

Is there something like:

observable.subscribeOnce(func);

My use case, I am creating a subscription in an express route handler and the subscription is being called multiple times per request.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

Not 100% certain about what you need, but if you only want to observe the first value, then use either first() or take(1):

observable.first().subscribe(func);

note: .take(1) and .first() both unsubscribe automatically when their condition is met

Update from RxJS 5.5+

From comment by Coderer.

import { first } from 'rxjs/operators'
    
observable
  .pipe(first())
  .subscribe(func);

Here's why


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...