-
Notifications
You must be signed in to change notification settings - Fork 28
Open
Description
Registry.prototype.getZookeeper = function () {
var defer = Q.defer();
if (this.zookeeper) {
defer.resolve(this.zookeeper);
}
//如果正在初始化中, 其他就不要初始化了, 加入队列等待
else if (this.isInitializing) {
this.initQueue.push(defer.promise);
}
return defer.promise;
};
其中this.initQueue.push(defer.promise); 这句代码经测试发现存在问题,你放到queue的是promise,
然后在
this.zookeeper.once('connected', function () {
self.initQueue.forEach(function (p) { //从队列中获取, 租个通知
p.resolve(self.zookeeper);
});
self.isInitializing = false;
console.log('Registry : 已连接上zookeeper');
});
执行p.resolve(self.zookeeper); promise 此时resolve 是不能执行的,只有defer才能resolve吧?
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels