Чтобы не рос колбек ад, используй конструкцию внутри которой будет весь асинк код.
async function request(url) {(
try {
await function(){
$.ajax({
type: 'GET',
url: url,
success: (data) =>{
return data;
}
})
};
} catch (error) {
console.error(error);
throw error;
}
}
(async ()=>{
try {
await ....
// весь асинк код
let data = await request('/ru/catalog');
console.log(data);
return 1;
} catch (error) {
console.error(error);
throw error;
}
})();
Ретурн и фроу обязательны, потому как по факту ты описываешь промис и после () можешь дальше вермишелить then catch и так далее