map(projectionFunction) {
return new Observable(observer => {
return this.subscribe({
next(val) { observer.next( projectionFunction(val)) },
error(e) { observer.error(e) } ,
complete() { observer.complete() }
});
});
}