function getMainData(id) {
return Promise.resolve({
id: id,
name: "Max",
email: "max@mail.ru"
});
}
function getExtraData() {
return Promise.resolve({
age: 20,
city: "Moscow",
phone: "123456789"
});
}
function getHistory() {
return new Promise((resolve) => {
setTimeout(() => {
resolve({
actions: [
{ action: "login" },
{ action: "page_view" },
{ action: "profile_open" }
]
});
}, 2000);
});
}
async function loadUserData(id) {
const main = await getMainData(id);
const extra = await getExtraData();
const history = await getHistory();
return {
...main,
...extra,
...history
};
}
loadUserData(1).then(data => {
console.log(data);
});