Redis
 sql >> база данни >  >> NoSQL >> Redis

Шаблони за проектиране на JavaScript – справяне с нежелана асинхронност

Вие се борите с асинхронността, защото все още пишете функциите си в синхронна парадигма.

В асинхронния режим трябва да прикачите обратни извиквания към събития. Не трябва да очаквате резултат от асинхронна функция като get_latest_results() , но трябва да му предадете функция за обратно извикване като аргумент, който да бъде извикан, когато резултатите са готови. Обратното извикване ще направи всичко, което трябва да се направи с вашите резултати:

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
}

След това можете да извикате функцията си по следния начин:

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



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. предайте резултатите на друга команда в redis

  2. Целина с множество django сайтове

  3. Асинхронно изпълнение на redis команди

  4. Зона за известия и новини с помощта на Redis

  5. Redis/Jedis няма единична точка на отказ и автоматично преминаване при отказ