Async simple example
by jonahe
JavaScript
/* test data */
const users = [{ name: "kalle"}, { name: "kajsa"}, { name: "johan"}, { name: "nisse" }];
const commentsByUserName = users.reduce((comments, user) => {
comments[user.name] = [1,2,3].map(i => `comment ${i} by ${user.name}` );
return comments;
}, {});
/* END test data */
const API = {
fetchUserByName: (name) => {
return new Promise((resolve, reject) => {
console.log("fetching users..");
setTimeout(() => resolve(users.find(u => u.name === name)), 1500);
});
},
fetchCommentsByUser: (user) => {
return new Promise((resolve, reject) => {
console.log("fetching comments for ", user.name, commentsByUserName);
setTimeout(() => resolve(commentsByUserName[user.name]), 1500);
});
}
}
async function initComments(userName) {
const user = await API.fetchUserByName(userName);
console.log("Got user", user);
const comments = await API.fetchCommentsByUser(user);
console.log("Got comments", comments);
}
initComments("kalle");