Hacker Newsnew | comments | ask | jobs | submitlogin
brendoncrawford 813 days ago | link | parent

Or if you want more re-usability:

  getFromCache = function (id, query, callback) {
    asynchronousCache.get(['id', id].join(':'), function(err, myThing) {
      if (myThing == null) {
        asynchronousDB.query(query, function(err, myThing) {
          callback(myThing);
        });
      }
      else {
        callback(myThing);
      }
    });
  };

  getFromCacheSomething = function (id, callback) {
    var query = buildQuery("SELECT * from something WHERE id = $id", {id:id});
    getFromCache(id, query, callback);
  }

  getFromCacheSomething(3222, function (myThing) {
    console.log('myThing:', myThing);
  });


davej 813 days ago | link

Don't forget to bubble errors up the callback chain along with return values (I always forget that too):

    getFromCache = function (id, query, callback) {
      asynchronousCache.get(['id', id].join(':'), function(err, myThing) {
        if (myThing == null) {
          asynchronousDB.query(query, function(err, myThing) {
            callback(err, myThing);
          });
        }
        else {
          callback(err, myThing);
        }
      });
    };

-----




Lists | RSS | Bookmarklet | Guidelines | FAQ | DMCA | News News | Feature Requests | Bugs | Y Combinator | Apply | Library

Search: