Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Async programming paradigm with nodejs and redis-node

Tags:

node.js

redis

How to translate the following sync pseudo code into async js code

result = []
for pid in r.smembers('active_prog'):
    for prog_obj in r.hgetall("prog:" + pid):
        for item_obj in r.hgetall("item:" + prog_obj['iid']):
            prog_obj['items'].append(item_obj)
        result.append(prog_obj)
return result

That's seems natural in sync programming:

  1. get some ids,
  2. get items by id
  3. get relevant information for each items and attach those info to them
  4. merge all items into an array and return

I've tried using MULTI but it seem doesn't work when the recursion goes deeper.

Is there any recommendation for learning programming in async paradigm?(preferably in js code rather than .net stuff)

like image 290
cqpx Avatar asked Dec 07 '22 20:12

cqpx


1 Answers

Is there any recommendation for learning programming in async paradigm?

Try to look at these:

  • Understanding Event-driven Programming
  • Asynchronous iteration patterns in Node.js
  • Tim Caswell's PDF from jsConf
  • How to stop writing spaghetti code
  • Callbacks, synchronous and asynchronous
  • The Step of the Conductor
  • Control Flow in Node
  • Control Flow in Node Part II
  • Control Flow in Node Part III

In order to prevent deeply nested callbacks in your code you can take advantage of several flow control node.js modules such as:

  • step
  • async.js
  • flow-js
like image 56
yojimbo87 Avatar answered Dec 11 '22 10:12

yojimbo87