take-until-destroy
TypeScript icon, indicating that this package has built-in type declarations

2.1.0 • Public • Published

take-until-destroy

A simple way to unsubscribe from an RxJs stream in Angular (6.0+) when the component is destroyed

For an overview of how this works see this post about unsubscription in angular

Coverage Status Build Status Dependencies JavaScript Style Guide

Installation

npm install take-until-destroy --save || yarn add take-until-destroy

Use

 import { Destroyable, takeUntilDestroy } from 'take-until-destroy'
 
 // If you have already implemented `OnDestroy`, you don't need the `@Destroyable` decorator.
 @Destroyable
 @Component({
   ...
 })
 export class ExampleComponent {
    constructor(randomService: RandomService) {
        randomService.getObservable
            .pipe(takeUntilDestroy(this))
            .subscribe(v => {
                console.log(v)
            })
    }
 }

Known Issues

The @Destroyable decorator doesn't work in production. See https://github.com/jsdevtom/take-until-destroy/issues/7 for updates. The current fully working work around is to simply implement OnDestroy for you component and it will work as expected. Example:

 import { Destroyable, takeUntilDestroy } from 'take-until-destroy'
 
 @Component({
   ...
 })
 export class ExampleComponent implements OnDestroy {
    constructor(randomService: RandomService) {
        randomService.getObservable
            .pipe(takeUntilDestroy(this))
            .subscribe(v => {
                console.log(v)
            })
    }
    
    ngOnDestroy() {/**/}
 }

Package Sidebar

Install

npm i take-until-destroy

Weekly Downloads

32

Version

2.1.0

License

MIT

Unpacked Size

11.3 kB

Total Files

11

Last publish

Collaborators

  • jsdevtom