Tengo este servicio:
getCert(p: string): Promise<string> { return ApiService.getData(this.apiUrl + p + this.certEndpoint).then( (response) => response.data ); } Este es un ejemplo de data :
{ "state": "success", "message": "Message received." } Si devuelvo response.data.state o response.data.message obtengo el valor relevante.
Si lo llamo con esto:
async componentDidMount() { const queryString = require('query-string'); const parsed = queryString.parse(location.search); return this.docListingService.getPks(parsed.policy).then(async pks => { this.setState({ isLoading: false, packs }); this.certService.getCert(parsed.policy).then( response => { console.log('RESPONSE: ' + response); }); return pks; }).catch((error) => { this.loggingService.logError('Error returning Docs ' + error); this.setState({ errorOccured: true}); }); } la response es una cadena pero mi consle.log imprime RESPONSE [object Object] . console.log('RESPONSE: ' + response.state); y console.log('RESPONSE: ' + response.message); pero fallan. Al igual que:
console.log('RESPONSE: ' + JSON.parse(response));¿Cómo resuelvo esto?
console.log() acepta tantos argumentos como quieras. Entonces puedes usarlo así:
console.log('response ', response)
Si desea registrar múltiples variables, puede hacerlo así:
console.log(variable1, variable2, variable3, 'some string', variable4);
Solo usa:
JSON.stringify(response)Esto mostrará la estructura del objeto como valor de cadena.
tiene un error en console.log de su código, está intentando concatenar una cadena y un objeto json. puedes probar este codigo
console.log('response ', JSON.parse(response)); //or console.log('response ', JSON.parse(response).data.message); //or console.log('response ' + JSON.parse(response).data.message);