sql >> Databasteknik >  >> NoSQL >> Redis

Kontrollera flödesproblem med nod/redis och återuppringningar?

Jag förstår inte varför client.smembers och client.get (Redis-uppslagningar) måste vara återuppringningar snarare än att bara vara påståenden - det gör livet mycket komplicerat.

Det är vad Node är. (Jag är ganska säker på att det här ämnet diskuterades mer än tillräckligt många gånger här, titta igenom andra frågor, det finns definitivt där)

Hur kan jag vara säker på att alla uppslagningar har utförts innan jag anropar socket.broadcast ?

Det är vad som är err för återuppringningsfunktion. Detta är typ Nodes standard - första parametern i callback är felobjekt (null om allt bra). Så använd bara något sånt här för att vara säker på att inga fel uppstod:

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

... // process results

Men det här verkar väldigt rörigt.

Du kommer att vänja dig vid det. Jag tycker faktiskt att det är trevligt när koden är välformaterad och projektet är smart strukturerat.

Andra sätt är:

  • Använda bibliotek för att styra asynkront kodflöde (Async.js, Step.js, etc.)
  • Om kod i spagettistil är vad du tror att röra är, definiera några funktioner för att bearbeta resultat och skicka dem som parametrar istället för anonyma.


  1. Sortering av aggregering addToSet-resultat

  2. Kör flera instanser av Redis på Centos

  3. Kan inte ansluta till redis med jedis

  4. Finns det något sätt att atomiskt uppdatera två samlingar i MongoDB?