28 lines
610 B
TypeScript
28 lines
610 B
TypeScript
|
|
import { Observable } from 'rxjs/Observable';
|
|
import 'rxjs/add/observable/of';
|
|
|
|
|
|
// #docregion
|
|
|
|
import { ajax } from 'rxjs/observable/dom/ajax';
|
|
import { map, retry, catchError } from 'rxjs/operators';
|
|
|
|
const apiData = ajax('/api/data').pipe(
|
|
retry(3), // Retry up to 3 times before failing
|
|
map(res => {
|
|
if (!res.response) {
|
|
throw new Error('Value expected!');
|
|
}
|
|
return res.response;
|
|
}),
|
|
catchError(err => Observable.of([]))
|
|
);
|
|
|
|
apiData.subscribe({
|
|
next(x) { console.log('data: ', x); },
|
|
error(err) { console.log('errors already caught... will not run'); }
|
|
});
|
|
|
|
// #enddocregion
|