database.js
let databaseModule = {
getUser,
getUserEmail
};
let users = [
{
firstName: 'Spruce',
lastName: 'Feinstein'
},
{
firstName: 'John',
lastName: 'Snow'
},
{
firstName: 'Leslie',
lastName: 'Palmer'
},
{
firstName: 'Alex',
lastName: 'Martinez'
}
];
let emails = [
{
firstName: 'Spruce',
email: '[email protected]',
},
{
firstName: 'John',
email: '[email protected]',
},
{
firstName: 'Leslie',
email: '[email protected]',
},
{
firstName: 'Alex',
email: '[email protected]',
}
];
function getUser(firstName) {
return new Promise((resolve, reject) => {
setTimeout(() => {
for (let i = 0; i < users.length; i++) {
if (users[i].firstName === firstName) {
return resolve(users[i])
}
}
return reject('user not found');
}, 200);
});
}
function getUserEmail(userFirstName) {
return new Promise((resolve, reject) => {
setTimeout(() => {
for (let i = 0; i < emails.length; i++) {
if (emails[i].firstName === userFirstName) {
return resolve(emails[i].email)
}
}
return reject('email not found');
}, 200);
});
}
module.exports = databaseModule;
app.js
let database = require('./module');
database.getUser('Spruce')
.then((user) => {
console.log(user);
return database.getUserEmail(user.firstName);
})
.then((userEmail) => {
console.log(userEmail);
})
.catch((err) => {
console.log(err);
});
app.js
let database = require('./module');
let userPromises = [];
userPromises.push(database.getUser('Spruce'));
userPromises.push(database.getUser('Spruce'));
userPromises.push(database.getUser('Spruce'));
userPromises.push(database.getUser('Spruce'));
Promise.all(userPromises)
.then((data) => {
console.log(data);
});