I want to use Rxjs to print out all the prime number like below but i am stuck in the return value. I try to use every
to return a boolean to the filter
but when i try to console.log
it prints out the boolean instead of the number in the range
. How can i get the value from range
after mergeMap
import { range, Observable } from 'rxjs';
import { mergeMap, tap, map, every, filter } from 'rxjs/operators';
function findingPrimeNumber(enterNumber): Observable<boolean> {
const MaxRangeNumber = enterNumber - 2;
return range(2, MaxRangeNumber).pipe(
every(numInRange => enterNumber % numInRange != 0)
)
}
range(2, 15).pipe(
tap(x => console.info(x-1)),
mergeMap((x) => findingPrimeNumber(x).pipe(map(x => x))),
filter(x => x)
).subscribe(console.log)