Búsqueda de sitios web

typescript - Angular/cómo obtener los datos devueltos por la API


Uso pipe y map para enviar al valor de retorno.

add(content): Observable<Comment> {
    return this.apiService
               .post('/api/comment/', comment)
               .pipe(map(data => data.comment));
}

Quiero comprobar el valor 'data'.

Por ejemplo, usando console.log

add(content): Observable<Comment> {
     return this.apiService
                .post('/api/comment/', comment)
                .pipe(map(data => data.comment, data => console.log('data.comment :', data.comment)));
}

En este caso, no funciona.

Me pregunto cómo usarlo en este caso.

Respuesta #1

Simplemente usa el operador tap combinado con map

add(content): Observable<Comment> {
     return this.apiService.post('/api/comment/', comment)
                           .pipe(tap(data => console.log('data.comment :', data.comment)),
                                 map(data => data.comment));
}

tap se usa cuando no necesitas cambiar la forma de la respuesta, necesitas algo para registrar o agregar en el almacenamiento local, etc.