sql >> Database teknologi >  >> NoSQL >> Redis

JavaScript-designmønstre -- Håndtering af uønsket asynkroni

Du kæmper med asynkroni, fordi du stadig skriver dine funktioner i et synkront paradigme.

I asynkron skal du vedhæfte tilbagekald til begivenheder. Du bør ikke forvente et resultat fra en asynkron funktion som get_latest_results() , men du bør give det en tilbagekaldsfunktion som et argument, der skal påberåbes, når resultaterne er klar. Tilbagekaldet vil gøre, hvad der skal gøres med dine resultater:

var get_latest_results = function (feedId, readyCallback) {
    client.get('feed:' + feedId + ':latest', function (err, res) {
        var latest_reading_key = res.toString();
        client.hgetall(latest_reading_key, function (err, res) {
            readyCallback(res);                           //--- Trigger Callback
        });
    });
    // how do I specify a return value for this function? //--- You don't
}

Så kan du kalde din funktion sådan her:

get_latest_results(1000, function (result) {
   //--- Do whatever needs to be done with the latest result...
});



  1. MongoDB - Argumentet til $size skal være et array, men var af typen:EOO / mangler

  2. Nyttige scripts til Couchbase Dba

  3. heroku mongohq og mongoid Mongo::ConnectionFailure

  4. Sådan bruger du GridFS til at gemme billeder ved hjælp af Node.js og Mongoose