Я мог бы использовать некоторую помощь, чтобы определить, когда все обещания Javascript разрешены. Я перебираю массив объектов и для каждого объекта вызываю функцию, которая возвращает обещание. Каждое обещание превращается в объект, и я объединяю эти объекты, чтобы создать один большой объект. Я хочу что-то сделать, когда я знаю, что этот большой объект завершен, то есть, когда все обещания будут выполнены. Я знаю, что должен иметь возможность использовать Promise.all и передавать массив обещаний, которые я создал, но я изо всех сил пытаюсь добиться этого в коде. Любая помощь вам будет высоко ценится. Вот мой код:
let data = JSON.parse(body)
let compedObj = {}
for (let i=0;i<data.dock.length;i++) {
getDockData(data.dock[i].url, user_token)
.then (data => {
compedObj = {...compedObj, ...data}
})
}
function getDockData (url, token) {
return new Promise((resolve, reject)=>{
var options = {
url: url,
headers: {
'authorization': `bearer ${token}`,
'user-agent': /* my app details */
}
}
function callback(error, response, body) {
if (!error) {
let data = JSON.parse(body)
let obj = {}
switch(data.title) {
case "ToDos":
obj = {todos: data.todos_count};
break;
case "Messages":
obj = {messages: data.messages_count}
break;
}
resolve(obj)
} else {
reject("there was an error")
}
}
Request(options, callback);
});
}