map()
Esse operador do rxjs
manipula a stream de dados do Observable
, e a cada chamada do metódo next
,
acessa o valor do retorno, podendo o manipular e expor essa alteração para o subscribe
.
Exemplo
O Exemplo abaixo manipula o Observable
do tipo UserEntity
mapeando os dados para o tipo User
.
import { map, Observable } from 'rxjs';
interface UserEntity {
id: number;
name: string;
}
interface User {
name: string;
}
const userEntityObservable: Observable<UserEntity> = new Observable<UserEntity>(
(subscribe) => {
const userEntity: UserEntity = {
id: 1,
name: 'Joana',
};
subscribe.next(userEntity);
subscribe.complete();
},
);
const mapNameUser: Observable<User> = userEntityObservable.pipe(
map((userEntity: UserEntity) => {
const user: User = {
name: userEntity.name,
};
return user;
}),
);
function executeMapNameUser() {
mapNameUser.subscribe((user) => {
console.log(user);
/*
{
name: 'Joana',
}
*/
});
}
export { executeMapNameUser };
Para visualizar a implementação desse fluxo acessar: