Я пытаюсь сделать функцию, которая получает данные фирмы по ИНН:
function getDataByINN(inn) {
console.log(inn)
let url = "https://suggestions.dadata.ru/suggestions/api/4_1/rs/suggest/party";
let token = "2dd89656b3d14b185a20dc252b1f3397b1be219";
var options = {
method: "POST",
mode: "cors",
headers: {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Token " + token
},
body: JSON.stringify({query: inn})
}
return fetch(url, options)
.then(response => response.text())
.then((data) => {
if (typeof data.suggestions[0] !== undefined) {
console.log(data.suggestions[0])
return data.suggestions[0];
} else {
return false;
}
})
.catch((error) => {
console.log("error", error);
return false;
});
}
...
let myCopany = getDataByINN(myPersonPars['INN']);
console.log(myCopany);
Данные получаются правильные. Но, так как fetch работает асинхронно, в переменную, использующую функцию, записывается undefined, а уже потом приходят данные. Запихнуть дальнейший код в then не получится, так как он разбросан по нескольким js файлам.
Как заставить fetch работать синхронно, или переделать в другой вариант ajax (можно jquery), с отправкой заголовков и прочих данных?