errCB(e) { console.error(e) },
get(url,cb, errCB = errCB) {
axios.get(url).then( d => cb(d) )
.catch( err => errCB(err) );
},
post(url,postdata,cb, errCB = errCB) {
axios.post(url, postdata).then( d => cb(d) )
.catch( err => errCB(err) );
}
}
В другом файле
import api from '@/api';
api.get('/api/v1/report/iv', d => Object.assign(reportIv, d.data), api.errCB);
//или
//api.get('/api/v1/report/iv', d => Object.assign(reportIv, d.data));
Ошибка - api.js:28 Uncaught (in promise) TypeError: errCB is not a function
Как правильно?
чё-то вы сильно странное делаете, зачем промисы переделывать на коллбэки? они для того и есть, чтоб избавиться и такого хд
Или разумнее переписать как get(url,d) { axios.get(url).then(res => Object.assign(d, res.data)).catch(err=>handleError(err)) ?
разумнее возвращать промис, ну и мапить данные, если надо, конечно
У меня в 99% случаях результат get нужно ЛИБО в переменную, ЛИБО в мутацию. Ошибку - единообразным уведомлением.
стучаться в апи нужно внутри асинхронных экшнов, мутации по своей природе синхронны
Спасибо, кэп. Вот у меня отработал api, и его результат неизбежно идет в мутацию
к чему тогда вам эти коллбэки в модуле работы с апи?
Как мне сделать единообразный обработчик ошибок axios?
Обсуждают сегодня