Skip to content

Commit

Permalink
chore(strawman): proposal for toPromise replacement
Browse files Browse the repository at this point in the history
  • Loading branch information
benlesh committed Feb 3, 2020
1 parent ab6e9fc commit 1d15a1e
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 0 deletions.
23 changes: 23 additions & 0 deletions src/internal/finalResult.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import { Observable } from './Observable';
import { EmptyError } from './util/EmptyError';

export function finalResult<T>(source: Observable<T>) {
return new Promise<T>((resolve, reject) => {
let _hasValue = false;
let _value: T;
source.subscribe({
next: value => {
_value = value;
_hasValue = true;
},
error: reject,
complete: () => {
if (_hasValue) {
resolve(_value);
} else {
reject(new EmptyError());
}
},
});
});
}
14 changes: 14 additions & 0 deletions src/internal/firstResult.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import { Observable } from './Observable';
import { EmptyError } from './util/EmptyError';

export function firstResult<T>(source$: Observable<T>) {
return new Promise<T>((resolve, reject) => {
source$.subscribe({
next: value => resolve(value),
error: reject,
complete: () => {
reject(new EmptyError());
},
});
});
}

0 comments on commit 1d15a1e

Please sign in to comment.