JoeSmith3100
@JoeSmith3100
Начинающий программист C#

Как написать функцию с возвращаемым значением типа string, возвращающую одно из полей json'а, пришедшее с запросом axios?

Допустим такой код будет возвращать пустую строку из за асинхронности, а использование async/await в данном случае невозможно, т.к. ''Тип string не является допустимым типом возвращаемого значения асинхронной функции в ES5/ES3, так как он не ссылается на значение конструктора, совместимое с Promise.'':
function setLegalLevel(): string {

    if (!cookieIsExist("token")) {
        return "";
    }

    let ans = ""
    axios.post (
    "https://localhost:44393/api/User/Translate",
    {
        "Body": parseCookie("token")
    }
    ).then (
        response => {
            ans = response.data.body.legalLevel
        }
    ) 
    .catch (
        function (error) {
            console.log(error)
        }
    )    
    return ans;
}


Вопрос, есть ли возможность написать подобного рода функцию?
  • Вопрос задан
  • 152 просмотра
Решения вопроса 1
Aetae
@Aetae Куратор тега TypeScript
Тлен
Мужик, async/await - это просто сахар над Promise. Любая async функция возвращает Promise по определению, любой await этот Promise разрешает.
async function setLegalLevel(): Promise<string> {
  ...
  await axios.post
  ...
}
...
const val: string = await setLegalLevel();
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы