我正在node.js.中编写一个应用程序
应用程序的配置存在于数据库中。
我已经创建了一个通用模块,可以与数据库对话并在Q promise中返回回复。
我现在正在创建一个特定的模块,它的存在是为了获取我的应用程序的配置。这是下面的config
模块。getconfig()
函数返回一个Q promise。但我想同步得到回复。
在另一个模块(请参阅下面的代码)中,我希望该模块获得配置,以便了解如何与服务(在本例中为aws3)对话。
因此,在实例化该模块时,我要做的第一件事就是获取配置。我希望无论何时实例化该模块,都能对其进行配置。这需要同步进行。
var s3Module = (function () {
var _config = config.getConfig().s3;
var bucket = _config.bucket;
return {
pushToS3: function (payload, fulfilled) {
var params = buildParams(payload);
s3.putObject(params, function (err, data) {
if (err)
error(err);
else
fulfilled(data);
});
}
};
})();
然而,使用promise,当我开始调用模块的函数时,我看不出如何确保从数据库返回配置
好的,所以在@slebetman评论之后,我在这里找到了答案:Node.js在第一次启动时就给出了不可预测的ajax响应
我的问题基本上是上述问题的重复。