sql >> Database >  >> NoSQL >> Redis

JavaScript-ontwerppatronen -- Omgaan met ongewenste asynchronie

Je worstelt met asynchronie omdat je je functies nog steeds in een synchroon paradigma schrijft.

In asynchronie moet u callbacks koppelen aan gebeurtenissen. Je zou geen resultaat moeten verwachten van een asynchrone functie zoals get_latest_results() , maar u moet een callback-functie doorgeven als een argument dat moet worden aangeroepen wanneer de resultaten gereed zijn. De callback zal doen wat er gedaan moet worden met uw resultaten:

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
}

Dan kun je je functie als volgt aanroepen:

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



  1. Mongodb $lookup Werkt niet met _id

  2. MongoDB Schema-ontwerp:er is altijd een schema

  3. MongoDB-omgeving instellen | Installeer MongoDB op Windows

  4. Redis keyspace-melding verloopt niet actief