我正在尝试提高使用大量猫鼬的大型 nodejs 应用程序的可读性。问题是,有很多相关的查询,回调会失控。
处理这个问题的做法是什么?
您的问题有三种常见的解决方案。
第一个是async.js库。
第二个是使用 Promises。在 node.js 中有不止一种 Promise 的实现。我知道三种实现:
第三个是使用Fibers。Fiber Promise库可以为您完成所有棘手的工作。
以前有很多类似的问题。例如,检查这个。
所有这些库都做同样的事情——它们使 node.js 异步代码漂亮且可读。因此,只需选择一个对您来说看起来更简单的。
至于我,我更喜欢async.js
lib。
更新: mongoose.js
有自己的内置承诺 -承诺。您可以将其作为mongoose.promise
. 但是,每当您exec()
在查询中调用函数时,mongoose
它都会向您返回一个承诺。除了 之外,我从未真正使用过mongoose.js
承诺REPL
,但你可以试一试。