FinalizationRegistry

ES12新增的FinalizationRegistry 对象,可以让你在对象被垃圾回收时请求一个回调。


使用方法:


const finalRegistry = new FinalizationRegistry((value) => {

console.log('注册在finalRegistry的对象中的,某一个被销毁了', value);

});



let obj = { name: 'mm' }; // obj有个引用在指向它所以不会被销毁

let info = { name: 'info' };



// 将需要监听的对象 注册到finalRegistry中

finalRegistry.register(obj, 'obj');// 第二个参数可以作为标识,传给回调。

finalRegistry.register(info, 'info');


//将obj、info赋值为null。注意: 并不是执行了obj=null之后obj就会立马被销毁,因为GC是不定时的。
obj = null; 

info = null;

//会在GC回收时执行回调
/*
注册在finalRegistry的对象中的,某一个被销毁了 info

注册在finalRegistry的对象中的,某一个被销毁了 obj

*/

注意:node 运行代码之后会自动将进程关掉的,所以上面的代码在 nodejs 环境中运行回调不会被触发

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值