Как вытащить значение из Axios + (TRY - CATCH) + async await?
Есть такой код:
const fs = require('fs');
const axios = require('axios');
const cheerio = require('cheerio');
const parseBilanzGuv = async (param) => {
let link = 'https://www.finanzen.net/suchergebnis.asp?_search=' + param;
try{
await axios.get(link)
.then(res => res.data)
.then(res => {
let html = res;
$ = cheerio.load( html, { decodeEntities: false } );
return {symbol: 'значение'};
})
.catch(err => console.log(err));
}
catch(e){
console.log("err- ", e);
}
};
parseBilanzGuv('US30161N1019').then(function(result) {
console.log(result); // undefined
});
При попытке получить возвращаемое значение из функции parseBilanzGuv() - получаю undefined.
Вопрос:
Что необходимо изменить в коде, что бы вытащить значение symbol: 'значение'; стало возможным?
Ответы (1 шт):
Автор решения: vsemozhebuty
→ Ссылка
Если не ошибаюсь, вы ведь ничего не возвращаете из функции parseBilanzGuv(). Поставьте return вместо await перед axios.get(link), чтобы вернуть результирующий Promise.
Хотя ещё лучше, наверное, не смешивать цепочки промисов и async/await, то есть заменить цепочку на ряд await и вернуть уже {symbol: 'значение'}, так будет последовательнее.
const parseBilanzGuv = async (param) => {
let link = 'https://www.finanzen.net/suchergebnis.asp?_search=' + param;
try {
const res = await axios.get(link);
const html = await res.data;
$ = cheerio.load(html, { decodeEntities: false });
return { symbol: 'значение' };
} catch(e) {
console.log('err- ', e);
}
};