与nodejs和redis-node的异步编程范例

cqp*_*qpx 4 redis node.js

如何将以下同步伪代码转换为异步js代码

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
Run Code Online (Sandbox Code Playgroud)

这在同步编程中看起来很自然:

  1. 得到一些ids,
  2. 按ID获取项目
  3. 获取每个项目的相关信息并将这些信息附加到它们
  4. 将所有项目合并到一个数组中并返回

我尝试过使用MULTI但是当递归更深入时它似乎不起作用.

有没有建议在异步范式中学习编程?(最好用js代码而不是.net的东西)