aradigma de programação assíncrona com nodejs e redis-node

Como converter o seguinte pseudo-código de sincronização em código js assíncrono

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

Isso parece natural na programação de sincronização:

get alguns ids,get itens por id obtenha informações relevantes para cada item e anexe essas informações a elesmerge todos os itens em uma matriz e retorne

Tentei usar o MULTI, mas parece que não funciona quando a recursão é mais profund

xiste alguma recomendação para aprender programação em paradigma assíncrono? (De preferência em código js em vez de .ne

questionAnswers(1)

yourAnswerToTheQuestion