Redis
 sql >> Baza danych >  >> NoSQL >> Redis

Wzorce projektowe JavaScript — radzenie sobie z niechcianą asynchronią

Zmagasz się z asynchronią, ponieważ wciąż piszesz swoje funkcje w paradygmacie synchronicznym.

W trybie asynchronicznym należy dołączyć wywołania zwrotne do zdarzeń. Nie powinieneś oczekiwać wyniku z funkcji asynchronicznej, takiej jak get_latest_results() , ale należy przekazać mu funkcję zwrotną jako argument do wywołania, gdy wyniki będą gotowe. Callback zrobi wszystko, co trzeba z wynikami:

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
}

Następnie możesz wywołać swoją funkcję w ten sposób:

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. Automatyczne ponowne próby

  2. Tworzenie słuchacza redis - możliwe w php?

  3. Synchronizacja Node.js i Redis / hget

  4. Django - Jak korzystać z asynchronicznej kolejki zadań z selerem i redis

  5. phpredis na Fedorze 12