[无关]
我的问题是,当我目前正在开发和使用使用Typescript的cocos Creator游戏引擎进行游戏时。
[相关]
我有下一个代码:
this.schedule(() => {
}, 1)
此函数将接收一个回调,并返回一个数字,该时间是重复此回调的时间(这是一个重复的计时器函数)。
好的,这将永远安排到我运行下一个功能之前。
this.schedule(() => {
this.unschedule(callback_fn);
}, 1)
unschedule()函数收到一个回调以停止此调度,因此我应该能够在引用此回调的同一回调函数中停止该调度的函数。
我可以做到:
this.schedule( this.callbackSchedule, 1)
private callbackSchedule() {
console.log("test");
this.unschedule(this.callbackSchedule);
}
有效,它将打印一次测试。
如何在自己的回调中引用匿名回调?有可能吗?
答案 0 :(得分:0)
当您生成一个匿名回调并将其直接传递给函数时,如果您当时不保存引用,则该引用将消失,并且没有任何神奇的方法可以在以后获取引用。您必须在创建时保存参考,例如:
this.myCallback = () => { /*...*/ };
this.schedule(this.myCallback, 1);
// Later:
this.unschedule(this.myCallback);
对我来说,这似乎比您将callbackSchedule
定义为方法的方法要好。