match
может вернуть null
и тогда произойдёт ошибка во время исполнения.const [a, b, c, d, f, g= ''] = value.match(/\d+/g) || [];
Либо, если ты на 146% уверен, что match
обязательно что-нибудь найдёт: const [a, b, c, d, f, g= ''] = value.match(/\d+/g) as string[];
axios.interceptors.request.use(async config => {
const token = await getToken(); // тут либо отдаём живой токен сразу, либо получаем новый
config.headers.Authorization = 'Bearer ' + token;
return config;
});
Ошибок ждать не надо.forEach
- синхронный. Либо используйте либы умеющие в асинхронный forEach, либо используйте обычные циклы:export const setGenderThunk = (gender, login) => {
return async dispatch => {
const users = await getUsers || []; // там внутри fetch
for(let user of users) {
if(user.login === login) {
const user_ = { ...user, gender: gender };
await setUser(user_, user.id); // там тоже внутри fetch
debugger
if(result.ok) {
dispatch(setGenderAC(user_.gender));
}
}
};
}
}
forEach
отрабатывает всё равно синхрнно, но при этом единовременно плодит множество асинхронных функций выполняющихся параллельно (которых, само собой, никто не ждёт). menu
есть в спеке html, хоть и deprecated вроде, а так - тебе ничто не мешает юзать незарезервированные названия.Vue.config.isReservedTag = function(isReservedTag){
const allowedTags = ['menu'];
return function(tag) {
if(allowedTags.includes(tag)) return false;
return isReservedTag.call(this, tag);
}
}(Vue.config.isReservedTag);
--save
нет, есть --save-prod
(которая не нужна, т.к. по умолчанию).--save-dev
- очевидно, устанавливает devDependencies.