クラス自体に変更を加えないと、クラスのメソッドにアクセスできません。
次のデモ コードを参照してください。
function myCallback() {
this.otherMethod();
}
class hiddenClass {
static hiddenFunction(callback) {
callback();
}
static otherMethod(){
console.log("success");
}
}
hiddenClass.hiddenFunction(myCallback);
この簡単な例では、コールバックで this.otherMethod() にアクセスしたいと考えています。明らかな答えは に変更callback()
することcallback.bind(this)()
ですが、この場合、hiddenClass はライブラリになります。
この他のメソッドを呼び出すにはどうすればよいですか?
参考までに、node-cron を使用して cron ジョブを作成しようとしています。データベース チェックが true を返す場合、これらのジョブを破棄し、(コールバックで) ジョブのすべてのサイクルをチェックします。ジョブには内部メソッドがあり.destroy()
ます。cronジョブを変数に保存してから呼び出すことができることは承知してvariable.destroy()
いますが、コールバックでそれを行う方法はありますか(これらのジョブはforループで作成され、どのジョブを破棄するかを特定したくないため)コールバック内)
cron.schedule(`5 * * * * *`, async function () {
schedule = await Schedule.findById(schedule._id);
if (!schedule) this.destroy() // Destroy the job if schedule is not found (this returns Window)
}
);