让构造函数返回 Promise 是不是不好的做法?
我正在尝试为博客平台创建一个构造函数,它内部有许多异步操作。这些范围包括从目录中抓取帖子,解析它们,通过模板引擎发送它们等。
所以我的问题是,让我的构造函数返回一个承诺而不是他们调用的函数的对象是不明智的。new
例如:
var engine = new Engine({path: '/path/to/posts'}).then(function (eng) {
// allow user to interact with the newly created engine object inside 'then'
engine.showPostsOnOnePage();
});
现在,用户也可能不提供补充承诺链链接:
var engine = new Engine({path: '/path/to/posts'});
// ERROR
// engine will not be available as an Engine object here
这可能会带来一个问题,因为用户可能会感到困惑,为什么在施工后不可用。engine
在构造函数中使用 Promise 的原因是有道理的。我希望整个博客在施工阶段后能够正常运行。但是,在呼叫后几乎无法访问该物体似乎是一种气味。new
我曾讨论过使用类似或会返回应许的东西。但这些似乎也很臭。engine.start().then()
engine.init()
编辑:这是在 Node.js 项目中。