Skip to content

Instantly share code, notes, and snippets.

@irrationnelle
Last active January 17, 2020 04:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save irrationnelle/c6a801feca606fadeccf4a28ec8df62b to your computer and use it in GitHub Desktop.
Save irrationnelle/c6a801feca606fadeccf4a28ec8df62b to your computer and use it in GitHub Desktop.
import { from } from "rxjs";
import { concatMap, last, scan } from 'rxjs/operators';
class Test {
someArray = [1,2,3,4,5,6,7,8,9,10,11,12];
constructor() {
from(this.someArray).pipe(
concatMap(this.delayedPromise),
scan((acc: number[], curr: number) => [...acc, curr], []),
last()
).subscribe(console.log)
}
delayedPromise = (n: number): Promise<number> => new Promise((resolve => {
setTimeout(() => {
resolve(n+1)
}, this.getRandomArbitrary(100, 1000))
}));
getRandomArbitrary = (min: number, max: number): number => Math.random() * (max - min) + min;
}
const test = new Test();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment