Created
December 2, 2014 20:22
-
-
Save eblahm/cf727aca7a5503acea75 to your computer and use it in GitHub Desktop.
callbackStyle.js
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var userTable = { | |
'123': { | |
id: '123', | |
name: 'Elon', | |
usage: 5000 | |
} | |
}; | |
var getUser = function(userId, callback) { | |
callback(null, { | |
id: userId, | |
usage: usageTable[userId] | |
}); | |
}; | |
var calculageUsage = function(user, callback) { | |
callback(null, user.usage + 50); | |
}; | |
var save = function(user, callback) { | |
userTable[user.id] = user; | |
callback(null, 1); | |
}; | |
var errorHandler = function(err) { | |
alert('sorry there as an error' + err); | |
}; | |
// This is what a program looks like when you use the callback style | |
var updateUsage = function(userId, callback) { | |
// promise style | |
getUser(123, function(err, user) { | |
if (err) return errorHandler(err); | |
updateUsage(user, function(err, usage) { | |
if (err) return errorHandler(err); | |
user.usage = usage; | |
save(user, function(err, updateCount) { | |
if (err) return errorHandler(err); | |
alert('user ' + userId + 'usage has been updated'); | |
alert('userTable:' + JSON.stringify(userTable)); | |
callback(); | |
}); | |
}); | |
}); | |
}; | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment