我正在为Node.js的异步流程而苦苦挣扎。假设您有以下课程:
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();
isConnected
我观察到在获取全局变量之前调用了 get 函数。在不违背 Node 的异步结构的情况下,我能做些什么来完成这项工作?
理想情况下,我正在寻找的解决方案实际上是在内部处理“连接”而不是定义回调“外部类”