Как мне вернуть результат из функции использующую axios с обещанием
Есть допустим функция в которой axios запрос и потом мне нужно из этой функции вернуть результат запроса. Как это сделать - не ясно. Т.е. внутри функции я могу взаимодействовать с данными погружаясь в функции then или ожидать через await, но это не даёт нужного результата. Интересует возможно ли вообще такое сделать?
Пример функции:
static get(url) {
let fd = new FormData();
fd.append("url", url);
let result;
axios.post("php/get.php", fd).then((response) => {
result = response.data;
});
return result; // как подождать ответа?
}
Ответы (1 шт):
Автор решения: WalkMess
→ Ссылка
const oldPromise = new Promise((res) => {
//Сейчас этот код работает синхронно и ничего не ждет внутри.
const a = 1;
const b = 1;
res(a + b);
});
//Мы вроде получили результат, но нет!
console.log(oldPromise);
//Нам необходимо ждать
const newPromise = oldPromise.then((answer) => {
console.log(answer, 'теперь мы точно получили результат');
return answer + 100
}
);
//Мы можем соеденять новые цепочки, однако это не будет иметь ничего с прошлой.
oldPromise
.then((answer) => answer + 1)
.then((oldConsole) =>
console.log(oldConsole, 'обратите внимания, это другая цепочка')
);
//Мы все еще работаем с oldPromise.
newPromise.then(data => console.log(data, 'это наш oldPromise'))