私はES6構文スタイルを使用してnode.jsの継承クラスを作成しています。ベースクラスはmqttクライアントを構築する2つのクラスがあり、継承クラスは基本クラスを拡張するクラスです。継承されたクラスは、node.js ES6スタイルのクラスの基本クラスで定義された変数を使用できません。
しかし、問題は、継承されたクラスは、基本クラスで定義された変数を使用することはできません。例えば
が、私の基本クラスで、というパブリック変数があります:this.mqtt_client、私は継承されたクラスでこの変数を使用しようとした、それは常に
が私の基底クラスとしてある未定義の問題になります続く
var mqtt = require('mqtt'),
EventEmitter = require('events').EventEmitter;
class MQTTBaseClass extends EventEmitter{
constructor(option) {
super();
this.mqtt_client = null;
this.uri = option.uri;
this.mqttOptions.clientId = option.clientId;
}
init(uri, mqttOptions){
this.mqtt_client = mqtt.connect(uri , mqttOptions);
this.mqtt_client.on('connect', onConnectionSuccess);
this.mqtt_client.on('error',onConnectionError);
this.mqtt_client.on('message',onMessageReceived);
............
}
}
class MQTTClass2 extends MQTTBaseClass{
constructor(option) {
super(option);
var self = this;
var interval = setInterval(
function() {
self.mqttClient.publish('dddd' , 'ddd' , { retain: false },function(err){
})
}, 5000);
}
..............
}
単純なタイプミスによって引き起こされる質問は、将来の使用のためにそれらを保持する価値がほとんどないため、おそらくオフトピックと見なされるため、投票を終了してください。 – jfriend00