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

Проблем с контролния поток с възел/редис и обратни извиквания?

Не разбирам защо client.smembers и client.get (Проверките на Redis) трябва да бъдат обратни извиквания, а не просто изявления – това прави живота много сложен.

Това е Node. (Сигурен съм, че тази тема е обсъждана повече от достатъчно пъти тук, прегледайте други въпроси, определено я има)

Как мога да съм сигурен, че всички търсения са извършени, преди да извикам socket.broadcast ?

Това е err за във функция за обратно извикване. Това е стандарт на Node - първият параметър в обратното извикване е обект на грешка (null ако всичко е наред). Затова просто използвайте нещо подобно, за да сте сигурни, че няма грешки:

if (err) {
  ...    // handle errors.
  return // or not, it depends.
}

... // process results

Но това изглежда много объркано.

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

Други начини са:

  • Използване на библиотеки за управление на асинхронния кодов поток (Async.js, Step.js и др.)
  • Ако кодът в стил спагети е това, което смятате за бъркотия, дефинирайте някои функции за обработка на резултатите и ги предайте като параметри вместо анонимни.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Не можете да получите резултат от Redis с помощта на Crud Repository в Spring Boot?

  2. Промяна на разрешението за файл по подразбиране при redis dump

  3. Как да използвате СКАНИРАНЕ с опцията МАЧ в Predis

  4. blpop спира обработката на опашката след известно време

  5. rails + docker + sidekiq + Грешка при свързване към Redis на 127.0.0.1:6379 (Errno::ECONNREFUSED)