在destroy时立即执行onDestroy函数

如何在destroy时立即执行onDestroy函数?


如文档所说,帧结束时才会执行onDestroy。
我用了redux做状态管理,在destroy时清空所有的订阅。
但是因为删除节点触发了订阅,但清理代码在订阅后才触发,这样会报错
截屏2022-05-02 05.12.28
如何在destroy的时候就执行onDestroy中的代码?
就是说,onDestroy可以同步执行吗?或者说可以有一个同步执行版本的onDestroy吗?

截屏2022-05-03 02.52.49
用onDisable+ isValid可以实现在destory时就执行清理代码
感觉有点hack,继续求更好方案

1赞

_destroyImmediate()

onDestroy() {
if(this.node&& isValid(this.node) && isValid(this.node,true)){
this.node.destroy()
}
}

直接调用onDestroy