Обновление: мой плохой, немного запутался. Следующий код будет работать только без () =>
после var fn
Вы очень близки. Попробуйте это:
var final = [];
var results = []; // you need a separate array for results
for (var i = 0; i < 10; i++) {
// renamed the variable, changed 'data' to 'fn'
var fn = () => getLink(value[i].url).then(function(data) {
console.log(data); // urls show here
results.push(data);
});
final.push(fn);
}
Promise.all(final).then(() => {
console.log(results)
})
Promise.all принимает массив обещаний. У вас есть массив 'final', но вы, похоже, пытаетесь сохранить результат выполнения функции, а также саму функцию.
Чтобы сделать это правильно - сначала получите массив обещаний. Затем передайте их Promise.all ().
P.S. Предполагая, что ваша функция действительно работает, не смотрели на нее, поскольку вопрос был об обещаниях.