ストリーム(TCP接続)を取得し、そのストリームから引き出すデータイベントから独自のカスタムイベントを生成するイベントエミッタクラスを作成する例が見つかりました。ノードイベントエミッタ - クラスをクラスに変換する方法構文
私が何をしても、それをリメイクすることはできません。それはes6クラスの構文です。私は、これが可能でなければならないことをノード文書で見た。しかし、私はOOPの弱い背景を持っており、私は仕事を得ることができません。
誰かが簡単に理解できると確信しています。ときにそれを迷子にしないようにここで私は次のことを試してみた私の認識の甘さで元のクラス(拡張するためのES5スタイルコンストラクタ/ utilにモジュール...)
const MsgClient = function(stream) {
events.EventEmitter.call(this);
let self = this, buffer = "";
stream.on("data", (data) => {
buffer += data;
let boundary = buffer.indexOf("\n");
while (boundary !== -1) {
let input = buffer.substr(0, boundary);
self.emit("message", JSON.parse(input));
buffer = buffer.substr(boundary + 1);
boundary = buffer.indexOf("\n");
}
})
}
util.inherits(MsgClient, EventEmitter); // from require("events").EventEmitter
はあるが、私はただの背景を持っていません動作しません。あなたはそれに慣れていない場合は、誰が助けるかさえ、それははるかに高く評価されるだろう、ライト方向に私を指すことができれば、「これは」
class MsgClient extends EventEmitter {
constructor(stream) {
super();
this.stream = stream;
this.buffer = "";
self = this;
}
stream.on("data", (data) => {
buffer += data;
let boundary = buffer.indexOf("\n");
while (boundary !== -1) {
let input = buffer.substr(0, boundary);
self.emit("message", JSON.parse(input));
buffer = buffer.substr(boundary + 1);
boundary = buffer.indexOf("\n");
}
})
};
...本当に複雑取得します。
class MsgClient extends EventEmitter {
constructor(stream) {
super();
this.stream = stream;
this.buffer = "";
stream.on("data", (data) => {
buffer += data;
let boundary = buffer.indexOf("\n");
while (boundary !== -1) {
let input = buffer.substr(0, boundary);
this.emit("message", JSON.parse(input));
buffer = buffer.substr(boundary + 1);
boundary = buffer.indexOf("\n");
}
})
}
};
なぜ彼はおそらくそのようにしたいのですか?これはコンパイルされません。 – lilezek
@lilezekはい、構文エラーです。 OPはES 6の構文を使いたいと思っていたので、Object Oriented Programingについて言及しました。 –
はい、しかしなぜ彼はコンストラクタでのみ使用されていて、それをバインドしてメモリ使用量を増やしている「これ? – lilezek