JavaScript как объединить результат с API в существующий массив
Подскажите, как правильно сделать такую функцию. Использую javascript с фреймворком React
let fData;
let lData = [];
for(let i = 0; i < data.length; i ++){
fData = {
...data[i],
credit: {
bank: axios.get("http://localhost:8080/api/v1/products/credits/" + data[i].credit.id)
.then(function(result){
return result.data.partner.name;
})
}
}
lData.push(fData);
}
console.log(lData);
Данный код возвращает то что ниже. Как получить Bank Name X
credit:
bank: Promise
__proto__: Promise
[[PromiseStatus]]: "resolved"
[[PromiseValue]]: "Bank Name X"
Ответы (1 шт):
Автор решения: Mykola Kikets
→ Ссылка
let fData;
let lData = [];
let pData = [];
for(let i = 0; i < data.length; i ++){
pdata.push(axios.get("http://localhost:8080/api/v1/products/credits/" + data[i].credit.id))
fData = {
...data[i],
credit: {
bank: "blank"
}
}
lData.push(fData);
}
Promise.all(pData).then(function(result){
for(var res in result){
lData[res].credit.bank = result[res].data.partner.name);
}
console.log(lData)
})
Promise.all() позволяет по завершению всех запросов получить массив результатов. Это единственный способ, поскольку axios работает в асинхронном режиме.