Если вы пытаетесь получить вызывающего абонента call()
, чтобы иметь возможность ждать результатов вашего топора ios, то вам нужно сделать две вещи:
- Вам необходимо вернуть обещание от
axios.post()
- Ваш абонент должен использовать
.then()
или await
в этом возвращенном обещании. - Не есть ошибки в вашем
.catch()
. Если вы .catch()
просто для того, чтобы вы могли войти в систему и по-прежнему хотите, чтобы отклонение было возвращено вызывающей стороне, вы должны сбросить ошибку. В этом случае кажется, что вызывающий должен поймать и записать ошибку.
Вот код для выполнения этих действий:
function call() {
return axios.post("https://jsonplaceholder.typicode.com/posts", {
title: "foo",
body: "bar",
userId: 1,
}).then((res) => {
return { answer: 30 };
});
}
call().then(result => {
console.log(result);
}).catch(err => {
console.log(err);
});
Кроме того, не было никакой причины использовать async
здесь. async
не обладает магическими способностями c, чтобы знать, когда выполняется асинхронная операция внутри функции. Вы все еще должны вернуть обещание или использовать await
для каждого обещания. В этом случае, поскольку вы не использовали await
, нет смысла использовать async
, поэтому я удалил его, поскольку вы можете просто вернуть одно обещание, которое у вас есть.