Вот функция, которую я пишу, чтобы поговорить с API, используя axios.Я пытаюсь заставить эту функцию возвращать массив.Я понимаю, что из этого получаю обещание, но когда я включаю функцию then () в свою функцию с намерением использовать данные из обещания, в ней ничего не будет.Я могу вставить console.log (reqs) вместо возвращаемого значения, и оно напечатает интересующие меня данные вместе со строкой «undefined» вверху, хотя я не совсем уверен, почему.Я стараюсь избегать использования console.log, за исключением тестирования, где это возможно, моей функции, поскольку я не хочу, чтобы эти данные просматривались с консоли.
Вот моя функция.
async function getMembers(omeIp,omeUser,omePass) {
var reqs = [];
axios({
method: 'get',
url: `https://${omeIp}/redfish/v1/Systems/Members`,
auth: {
username: omeUser,
password: omePass
},
httpsAgent: new https.Agent({
rejectUnauthorized: false
}),
headers: {'Self-Signed-Header': 'certificate'}
}).then((res) => {
value = res.data['value'];
for(var key in value) {
let member = value[key]['@odata.id'];
reqs.push(member);
}
return reqs;
}).catch((err) => {
console.log(err);
});
};
module.exports = {
getMembers,
};
и вот как я это называю.
const {getMembers} = require('./functions.js');
var omeIp = "100.73.32.21",
omeUser = "admin",
omePass = "Sq%9A&pEBP";
getMembers(omeIp,omeUser,omePass).then((res) => console.log(res));
Как я могу получить результат от своей функции, чтобы позволить мне связать then () с концом и использовать содержимое обещания?или есть лучший способ сделать это?