angular-async-tracker
v2.0.0
Published
A port of angular-promise-tracker to angular 6+ that also supports observables
Downloads
306
Maintainers
Readme
angular async tracker
Table of contents
About
A port of angular-promise-tracker to angular 6+ that also supports observables
Installation
Install through npm:
npm install --save angular-async-tracker
Finally use in one of your apps components:
import { Component } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Subscription } from 'rxjs';
import { take } from 'rxjs/operators';
import { AsyncTrackerFactory, AsyncTracker } from 'angular-async-tracker';
@Component({
template: `
<span *ngIf="asyncTracker.active">Loading...</span>
<button *ngIf="!asyncTracker.active" (click)="save()">Save</button>
`
})
export class MyComponent {
asyncTracker: AsyncTracker;
constructor(
private http: HttpClient,
asyncTrackerFactory: AsyncTrackerFactory
) {
this.asyncTracker = asyncTrackerFactory.create();
}
save() {
const saved: Subscription = this.http
.post('/foo', { bar: 'bam' })
.pipe(take(1))
.subscribe(result => {
console.log(result);
});
// `asyncTracker.add` accepts promises or observable subscriptions
this.asyncTracker.add(saved);
}
}
Documentation
All documentation is auto-generated from the source via compodoc and can be viewed here: https://mattlewis92.github.io/angular-async-tracker/docs/
Development
Prepare your environment
- Install Node.js and NPM (should come with)
- Install local dev dependencies:
npm
while current directory is this repo
Development server
Run npm start
to start a development server on port 8000 with auto reload + tests.
Testing
Run npm test
to run tests once or npm run test:watch
to continually run tests.
Release
npm run release
License
MIT