【发布时间】:2012-12-30 14:42:04
【问题描述】:
我正在为 Node.js 的 async 流而苦苦挣扎。假设您有以下课程:
function myClass() {
var property = 'something';
var hasConnected = false;
this.connect = function(params) {
//Some logic that connects to db and in callback returns if the connection is successful
connectToSomeDB('ConnectionString', function(connectionResult) {
hasConnected = connectionResult
})
};
this.get = function(params) {
if(hasConnected) {
DoGetOperation() //
}
else {
//Another question. What should be done here. Call the connect again?
}
}
}
考虑到 Javascript 和 Node 结构,我当然认为我的设计存在一些重大问题,但我无法找到解决办法,因为 connect 必须调用才能使任何操作正常工作。但是当我在操作后进行一些日志记录时:
brandNewObject = myClass();
brandNewObject.connect();
brandNewObject.get();
我观察到 get 函数在获取全局 isConnected 变量之前被调用。在不违背 Node 的异步结构的情况下,我能做些什么来完成这项工作?
理想情况下,我正在寻找的解决方案实际上是在内部处理“连接”,而不是定义回调“外部类”
【问题讨论】:
标签: javascript performance oop node.js modularity