У слова async один простой смысл: эта функция всегда возвращает промис. Значения других типов оборачиваются в завершившийся успешно промис автоматически -
Источник . Чтобы получить данные нужно использовать асинхронную функцию либо через then.
Пример 1
...
ProductData.post().then(data => console.log(data));
Пример 2
(async function() {
const response = await ProductData.post();
console.log(response);
})()
Можно использовать callback
inputNames.then(response => {
console.log(response.inputs) // работает, возвращает нужный результат
test(response.inputs);
})
function test(inputs) {
console.log(inputs)
}
inputs = undefined - потому что в момент исполнения промис еще не завершился.
Если принципиально хотите использовать синхронный запрос, то воспользуйтесь синхронным аяксом. На битриксе не знаю как это сделать. На время выполнения запроса будет блокироваться браузер.
let responce = $.ajax({async: false, ...}).responceText;