Я работаю над приложением Node с Express. Я связываю несколько http-вызовов с API данных, каждый из которых зависит от ответов предыдущего запроса.
Все работает, кроме последнего звонка. Последний вызов должен произойти несколько раз, прежде чем страница должна отобразиться.
Поиск дал отличные примеры того, как связать, но не вызывать один и тот же API (или HTTP GET, конечную точку данных и т. д.) каждый раз с разными параметрами.
Я пытаюсь сделать что-то вроде этого: Использование генератора для многократного вызова API и разрешения только после завершения всех запросов?
var getJSON = (options, fn) => {
.....
}
router.route("/")
.get((req, res) => {
var idArray = [];
var results = [];
getJSON({
.... send params here, (result) => {
//add response to results array
results.push(result);
//create var for data nodes containing needed id params for next call
let group = result.groupsList;
//get id key from each group, save to idArray
for(i=0;i<groups.length;i++){
idArray.push(groups[I].groupId);
}
//use id keys for params of next api call
dataCallback(idArray);
});
function dataCallback(myArray){
// number of ID's in myArray determine how many times this API call must be made
myArray.forEach(element => {
getJSON({
.... send params here, (result) => {
results.push(result);
});
// put render in callback so it will render when resolved
}, myRender());
};
function myRender() {
res.render("index", { data: results, section: 'home'});
}
})