Мне нужно объединить данные из API.Я делаю первый вызов к конечной точке, которая дает мне список идентификаторов, затем я делаю запрос для каждого идентификатора.Моя цель - вернуть список с ответами на все запросы, но я потерял себя в обещаниях ...
Мой код работает на NodeJS.Вот код:
const fetch = require('node-fetch')
const main = (req, res) => {
fetch('ENDPOINT_THAT_GIVES_LIST_OF_IDS')
.then(response => response.json())
.then(response => {
parseIds(response)
.then(data => {
console.log(data)
res.json(data)
// I want data contains the list of responses
})
})
.catch(error => console.error(error))
}
const getAdditionalInformations = async function(id) {
let response = await fetch('CUSTOM_URL&q='+id, {
method: 'GET',
});
response = await response.json();
return response
}
const parseIds = (async raw_ids=> {
let ids= []
raw_ids.forEach(function(raw_id) {
let informations = {
// Object with data from the first request
}
let additionalInformations = await
getAdditionalInformations(raw_id['id'])
let merged = {...informations, ...additionalInformations}
ids.push(merged)
})
return ids
})
main()
Я получаю эту ошибку: «await действителен только в асинхронной функции» для этой строки:
let additionalInformations = await getAdditionalInformations(raw_id['id'])
Помогите мне с обещанием и async / await, пожалуйста.