У меня есть класс, который возвращает объект со своими свойствами.Я хотел бы получить доступ к значению предыдущего реквизита внутри конструктора.
У меня есть следующий рабочий код:
class KafkaConsumer {
constructor (metaDataBrokerList, groupID, autoCommit, AutoOffsetReset, topicName) {
return {
consumer: this.create(metaDataBrokerList, groupID, autoCommit, AutoOffsetReset, topicName),
connect: (consumer) => { this.connect(consumer) }
};
}
create (metaDataBrokerList, groupID, autoCommit, AutoOffsetReset, topicName) {
var consumer = new Kafka.KafkaConsumer({
'metadata.broker.list': metaDataBrokerList,
'group.id': groupID,
'enable.auto.commit': autoCommit, // don't commit my offset
'auto.offset.reset': AutoOffsetReset, // consume from the start
});
.
.
.
return ( consumer );
}
// Conect the consumer
connect (consumer) {
consumer.connect();
}
}
И вызов (как вы можете видеть, мне нужнопередать созданную переменную в функцию 'connect'. Я хочу избежать этого):
let kafkaConsumer = new KafkaConsumer(...props);
// Connect the consumer
kafkaConsumer.connect(kafkaConsumer.consumer);
Я хочу что-то вроде:
class KafkaConsumer {
constructor (metaDataBrokerList, groupID, autoCommit, AutoOffsetReset, topicName) {
return {
consumer: this.create(metaDataBrokerList, groupID, autoCommit, AutoOffsetReset, topicName),
connect: this.connect(consumer)
// Where 'this.connect' is my function and 'consumer' is the previous prop
};
}
.
.
.
}
Итак, звонок должен быть:
// Connect the consumer
kafkaConsumer.connect();