В коде VS «Консоль отладки» я могу оценивать выражения в моем коде в середине сеанса отладки при отладке моего кода JavaScript, включая выполнение моих функций.Однако я не могу запускать функции async
, даже когда использую IIFE и т. Д.
У меня есть следующий код:
const axios = require('axios');
async function getUrl() {
const response = await axios.get('http://example.com/');
return response.data;
}
async function main() {
const response = await getUrl();
console.log(response);
}
main();
Я установил точку останова наasync function main() {
, затем я запускаю VS Code Debugger.Затем я пытаюсь запустить функцию getUrl
различными способами в консоли отладки, например getUrl()
, getUrl().then((data) => data)
и (async () => getUrl())()
, которые все возвращают Promise { pending }
).main()
возвращает то же самое (если выполняется после определения функции).Ни один из этих методов не выводит возвращаемое значение функции.
Я также пробовал await getUrl()
, который возвращает SyntaxError: await is only valid in async function
.
Я знаю, что могу вывести нужные функции в коде с помощью console.log
, если действительно необходимо, но я ищу решение, которое специально использует консоль отладки для печати результатов обещаний, специально созданных с помощью функции await
.
Следовательно, действительно ли существует какой-либо способвыводить результаты функции в Консоль отладки кода VS, когда эта функция имеет значение async
?