sql >> Database >  >> NoSQL >> Redis

Beheersstroomprobleem met node/redis en callbacks?

Ik begrijp niet waarom client.smembers en client.get (Redis-zoekopdrachten) moeten callbacks zijn in plaats van alleen maar statements - het maakt het leven erg ingewikkeld.

Dat is wat Node is. (Ik ben er vrij zeker van dat dit onderwerp hier meer dan genoeg is besproken, kijk door andere vragen, het is er zeker)

Hoe weet ik zeker dat alle zoekopdrachten zijn uitgevoerd voordat ik socket.broadcast aanroep? ?

Dat is wat err . is voor in callback-functie. Dit is een beetje de standaard van Node - de eerste parameter in callback is het foutobject (null als alles goed is). Dus gebruik gewoon zoiets als dit om er zeker van te zijn dat er geen fouten zijn opgetreden:

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

... // process results

Maar dit lijkt erg rommelig.

Je zal er aan wennen. Ik vind het eigenlijk wel leuk, als de code goed is opgemaakt en het project slim gestructureerd is.

Andere manieren zijn:

  • Libraries gebruiken om asynchrone codestroom te regelen (Async.js, Step.js, etc.)
  • Als spaghetti-achtige code is wat je denkt dat rommel is, definieer dan enkele functies om resultaten te verwerken en geef ze door als parameters in plaats van anonieme.


  1. Hoe vertel je Mongo een verzameling te sorteren voordat de resultaten worden beperkt?

  2. Applicatiecache vs. hibernate cache op het tweede niveau, welke te gebruiken?

  3. MongoDB $atanh

  4. Mongo - Negeer eigendom van persistentie