| I would have written each statement on its own line: var users = db.getUsers(); var expiredUsers = getExpiredUsers(users, Date.now()); var expiryEmails = generateExpiryEmails(expiredUsers); email.bulkSend(expiryEmails); This is not only much easier to read, it's also easier to follow in a stack trace and it's easier to debug. IMO it's just flat out better unless you're code golfing. I'd also combine the first two steps by creating a DB query that just gets expired users directly rather than fetching all users and filtering them in memory: expiredUsers = db.getExpiredUsers(Date.now()); Now I'm probably mostly getting zero or a few users rather than thousands or millions. |