在nodejs函数中处理多个依赖查询

时间:2014-04-11 16:31:26

标签: mysql node.js asynchronous

我有一个函数,需要在数据库中查询符合特定条件的项目,然后遍历每个项目,检查它是否符合多个其他条件,最后采取一些措施。

  1. 首先,获取具有特定身份的所有图书
  2. 接下来,查看每本书是否已签出
  3. 如果签出,请查看谁拥有它,检索他们的电子邮件并向他们发送通知
  4. 无论签出状态如何,都会向图书管理员和图书所有者发送通知
  5. 更新数据库中的图书状态
  6. 我开始以非同步的方式做这部分工作,但它实际上有效。但是,一旦我试图确定该书是否已检出,我就遇到了问题,因为在该功能完成运行之前未检索到该值。我尝试使用promises,但发现它们仍然没有及时获得值,除非我将其余代码插入then方法中,但导致在then之前定义的所需值不是里面有它。

    接近这样做的最佳方法是什么?需要在运行时从多个数据库表动态填充多个值的东西,但仅在某些条件下并且在迭代多个记录时都是如此?

1 个答案:

答案 0 :(得分:1)

甚至同步处理也可以使用异步函数样式实现(即使用回调来处理一些处理的结果)。

因此,您应该使用异步样式实现新功能。

我还建议以异步方式返回并重新实现现有的同步函数,稍后您可能会了解到某些处理可能需要比预期更长的时间(特别是在系统开始增长之后)。