Разработчик Twilio здесь.
Ваша проблема здесь в том, что вы используете each
для составления списка конференций независимо. Если вы просто хотите работать со списком, вам следует использовать метод list
и затем возвращать результаты в обратном вызове.
Попробуйте что-то вроде этого.
exports.fetchLiveConferences = function(req, res, next) {
client.conferences.list({
dateCreated: new Date(),
status: 'In-progress'
}, (err, conferences) => {
if (err) { console.error(err); return; }
conferencesArray = conferences.map(conference => ({
conferenceSid: conference.sid,
conferenceName: conference.friendlyName,
conferenceStatus: conference.status,
}));
res.send(conferencesArray);
})
}
В этом случае conferences
onject в обратном вызове является списком конференций. Затем вы можете map
проводить конференции и строить нужные объекты, возвращая их в качестве ответа.
Обновление
Если вы хотите использовать обещания и async
и await
, метод list
также возвращает обещание. Вы можете использовать это так.
const fetchConferenceList = () => {
return client.conferences.list({
dateCreated: new Date(),
status: 'In-progress'
}).then(conferences => conferences.map(conference => ({
conferenceSid: conference.sid,
conferenceName: conference.friendlyName,
conferenceStatus: conference.status,
})));
}
exports.fetchLiveConferences = async function(req, res, next) {
const conferenceData = await fetchConferenceList();
res.send(conferenceData);
}