当前位置: 首页 > 面试题库 >

使用Node.js和Redis-Node的异步编程范例

姬凡
2023-03-14
问题内容

如何将以下同步伪代码转换为异步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

在同步编程中,这似乎很自然:

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

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

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


问题答案:

对于异步范例中的编程学习有什么建议吗?

尝试看看这些:

  • 了解事件驱动的编程
  • Node.js中的异步迭代模式
  • jsConf的Tim Caswell的PDF
  • 如何停止编写意大利面条代码
  • 同步和异步回调
  • 指挥的步骤
  • 节点中的控制流
  • 节点第二部分中的控制流
  • 节点第三部分中的控制流

为了防止代码中嵌套深度较大的回调,您可以利用几个流控制node.js模块,例如:

  • step
  • async.js
  • flow-js


 类似资料:
  • 问题内容: 在我的应用程序(node / express / redis)中,我使用一些代码同时更新数据库中的多个项目: 我可以确定在方法返回之前将执行所有这些操作吗?我关心的是异步处理。由于我不在db操作中使用回调函数,因此可以吗? 问题答案: 使用MULTI / EXEC命令创建命令队列并连续执行它们。然后使用回调发送回连贯的响应(成功/失败)。请注意,您必须使用Redis的AOF来避免这种情

  • 本文向大家介绍node.js下when.js 的异步编程实践,包括了node.js下when.js 的异步编程实践的使用技巧和注意事项,需要的朋友参考一下 假设一个业务场景: 通过rss地址,获取rss并保存于文件,rss地址保存于文件中。 完成该场景的业务需要完成3个任务: 1.从文件中读取rss地址。 2.获取rss。 3.保存于文件。 最后将这三个任务进行整合。 准备: 存放rss地址的文件

  • 本文向大家介绍浅谈node.js中async异步编程,包括了浅谈node.js中async异步编程的使用技巧和注意事项,需要的朋友参考一下 1.什么是异步编程? 异步编程是指由于异步I/O等因素,无法同步获得执行结果时, 在回调函数中进行下一步操作的代码编写风格,常见的如setTimeout函数、ajax请求等等。 示例: 这里大部分人会认为输出123,或者333。其实它会输出 444 这里就是我

  • 问题内容: 我一直在阅读nodebeginner, 并且遇到了以下两段代码。 第一个: 第二个: 我得到了他们应该做的事情,他们查询数据库以检索查询的答案。然后。 第一个应该是同步代码。第二个是异步代码。 这两部分之间的区别对我来说很模糊。输出是什么? 搜寻异步编程也无济于事。 问题答案: 区别在于,在第 一个示例中 ,程序将在第一行中阻塞。下一行()必须等待。 在 第二个示例中 ,将在处理查询时

  • 问题内容: 我想从Redis + Hiredis + libevent中获得尽可能多的收益。 我正在使用以下代码(没有简短的说明) 要进行编译,请在系统中使用假定的libevent,redis和hiredis。 我好奇何时需要做?在每个回调中一次或(如示例所示)。我有什么办法可以提高性能? 我得到大约6000-7000 req / s。使用到这个基准,复杂化的东西当试图大的数字(如10K请求数)

  • 问题内容: 我一直在阅读nodebeginner,并且遇到了以下两段代码。 第一个: 第二个: 我得到了他们应该做的事情,他们查询数据库以检索查询的答案。然后。 第一个应该是同步代码。第二个是异步代码。 这两件作品之间的区别对我来说很模糊。输出是什么? 搜寻异步编程也没有帮助我。 问题答案: 区别在于,在第 一个示例中 ,程序将在第一行中阻塞。下一行()必须等待。 在 第二个示例中 ,将在处理查询