私は以下を実行しようとしています。別のメソッドを呼び出すES6クラスのメソッドのコールバック
listening(randomToken, self) {
console.log("test");
}
startListening(randomToken) {
let test = caller => {
this.listening(randomToken, this);
};
this.udpSocket.on("listening", test);
}
別のクラスのstartListeningをconsole.log( "test")の出力と呼びます。 Chromeコンソールには表示されません。
はしかし、私が行うとき:出力が正しく表示され
startListening(randomToken) {
let test = caller => {
this.listening(randomToken, this);
};
this.udpSocket.on("listening", this.listening(randomToken));
}
、しかしは私が手:
Uncaught TypeError: "listener" argument must be a function
ですが、なぜでしょうか?もちろん、try/catchの周りにラップして表示することによるエラーを避けることができますが、これを扱うより適切な方法はありますか?
編集:私もこれが動作しないことを言及するのを忘れてしまった:
let test = caller => {
console.log("test");
};
this.udpSocket.on("listening", test);
}
は、だから、 'のようになります。 updSocket.on'は決してコールバックを呼び出しませんか?それはどこから来たのですか?あなたはそれによって解雇された「リスニング」イベントがあると確信していますか? – Bergi
ちょっと!返信ありがとう 私はClientControllerというクラスをインスタンス化し、Reactコンポーネント(電子アプリケーションで使用しています)内からonClickイベントでclientController.startListening()メソッドを起動します。 – zorrooo