`fetch(URL)` возвращает обещание(
Promise), а вы сразу возвращаете результат. Колбэк функция передаваемая в метод then будет вызвана позже, когда закончится процесс `fetch`.
Функция `myfunc` должна тоже возвращать Promise вот так:
function myfunc() {
results = [];
return fetch(URL)
.then((response) => response.json())
.then((hitsJSON) => {
return hitsJSON.hits.map(item => {
return {
id: item.id,
url: item.previewURL,
tags: item.tags
};
}));
});
}
// и использование
myfunc()
.then((results) => {
// do something
})