【发布时间】:2016-08-10 02:59:37
【问题描述】:
我目前在 nodejs 中有一些 js 文件,它们作为模块加载并扩充应用程序对象(使用 express)。
所以他们的签名看起来像:
module.exports = function(app, callback) {
// ...
callback();
}
所以目前我有大约 5 个,我的代码如下所示:
require("./setup/a")(app, function() {
require("./setup/b")(app, function(){
require("./setup/c")(app, function(){
require("./setup/d")(app, function(){
require("./setup/e")(app, function(){
startApp();
})
})
})
})
});
现在看起来很难看,因为它是“厄运金字塔”,但是我不完全确定我需要如何更改此模式以使用 Q,因为我假设我会使用 Q.fcall(...a).then(...b).etc.done()。但是我不确定如何将应用程序传递给它,以及是否需要返回回调以将其作为承诺处理。
理想情况下,我不想在我的代码中开始使用 Q,我只希望在我想要删除金字塔用例的地方使用它,所以在上面的示例中,我如何使用 Q 和 Promise 将应用程序传递到每个必需的模块,然后在最后启动应用程序?
【问题讨论】:
标签: javascript node.js promise q