1
resposta

Um pipe atrás do outro: como funciona?

Caros, gostaria de entender um pouco mais sobre esse .pipe. O primeiro .pipe(filter ...) possui um retorno? Para que o próximo pipe (.pipe(map ...) seja executado, é necessário que o pipe anterior retorne true, por exemplo?

O fluxo de pipes não está claro para mim. Em resumo minha dúvida é se o pipe subsequente só executa se o pipe anterior for verdadeiro ou retornar algo não nulo, etc.

ngOnInit(): void {
    this.router.events
      .pipe(filter(event =>
        event instanceof NavigationEnd
      ))
      .pipe(map(() =>
        this.activatedRoute
      ))
      .pipe(map(route => {
        while (route.firstChild) route = route.firstChild
        return route;
      }))
      .pipe(switchMap(route => route.data))
      .subscribe(event => this.titleService.setTitle(event.title));
  }
1 resposta

Fala ai Ebert, tudo bem? O pipe precisa retornar um Observable de sucesso, ou seja, isso porque ele cada pipe está modificando o valor do Observable atual e retornando um novo.

O filter, map e switchMap recebem um Observable como parâmetro e retornar o mesmo com o valor modificado (apenas o switchMap que retorna um novo Observable).

Espero ter ajudado.