Skip to content

Instantly share code, notes, and snippets.

Last active August 29, 2015 14:04
What would you like to do?
Code snippet that can wrap any function and give it the ability to run a callback
var callbackCurrier = function(obj, funcName) {
var originalFunction = obj[funcName];
var callbackFunc = function() {
var args =, 0);
var callback = args.pop();
var returnValue = originalFunction.apply(obj, args);
if (callback) {
obj[funcName] = callbackFunc;
var localStorageInterface = {
getQuestion: function(questionId) {
return localStorage.getItem('q' + questionId);
setQuestion: function(questionId, value) {
localStorage.setItem('q' + questionId, value);
// This could just as easily be a loop over an object's own properties,
// with a check that they are functions. Could also loop over an array
// of strings containing the function names that should return callbacks.
// Useful for enforcing an event-driven programming model on synchronous code.
callbackCurrier(localStorageInterface, 'getQuestion');
callbackCurrier(localStorageInterface, 'setQuestion');
localStorageInterface.setQuestion("status", "true", function() {
localStorageInterface.getQuestion("status", function(data) {
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment