В проектах на Vue и React есть сервис для работы с api, в котором для каждой операции выполняется обработка ошибок по такой схеме:
import axios from 'axios';
const posts = {
getPosts(){
return axios
.get('https://jsonplaceholder.typicode.com/p2osts/1')
.then(r => r.data)
.catch(err => handleError(err, 'posts.getPosts()'))
}
}
/**
* Localize error sourse for debuging usability
*
* @param {*} err - catched error
* @param {string} apiMethod - name like 'posts.getPosts()'
*/
function handleError(err, apiMethod){
console.error(`Error in api().${apiMethod}:`)
console.error(err);
// code for error logging in production
}
export function api(){
return{
posts
}
}
Т.е. по вызвову - api().posts.getPosts() происходит обращение к api сервера и если происходит ошибка она выводиться в консоль и логируется в облачном сервисе.
Как в компоненте который использует такой сервис добавить notification, который покажет юзеру текст в случае ошибки ?
Такой вариант не срабатывает:
try{
const data = await api().posts.getPosts();
console.log( data );
}
catch{
console.log( 'Показать уведомление об ошибке' );
}