Вы не можете реально вернуть обещание, вы можете вместо этого выполнить его следующим образом:
function getPosition(workers) {
return Promise.all(workers.map(worker => {
const {firstname, lastname, address: {streetname, city, country}} = worker;
return axios.get(`https://api-adresse.data.gouv.fr/search/?q=${streetname} ${city}`)
.then(response => {
const [lon, lat] = response.data.features[0].geometry.coordinates;
return {
firstname: firstname,
lastname: lastname,
address: {streetname, country, city, lon, lat}
};
})
.catch(logger.error)
})).then(results => results.filter(Boolean));
}
И получить доступ к результатам в виде
getPosition(workers)
.then(allResults => {
// do what you need with the results
})
Или, альтернативно, с помощью асинхронного Синтаксис / ожидание
(async ()=>{
const allResults = await getPosition(workers)
// do what you need with the results
})()