我在主线程和物理工作者之间使用可转移对象。 Float32Array被来回传递,并且效果很好。如何检查Float32Array是否已绝育?

例如,这是一个数组:

this.transferableArray = new Float32Array();


作为可转让对象发送

worker.postMessage(this.transferableArray, [this.transferableArray.buffer]);


目前,在我的代码中,我检查是否已将其绝育:

if (!transferableArray.length) {
    return false;
}


这是正确的方法吗,还是有某种方法专门告诉数组是否被绝育了?这是一场比赛,因此每毫秒的收益都很重要。

最佳答案

在发送数组之后,它变得无用了,所以现在我只是在发送属性后取消设置该属性。

worker.postMessage(this.transferableArray, [this.transferableArray.buffer]);
this.transferableArray = undefined;


现在,在任何时间点都可以通过检查来轻松检查是否回来

if(!this.transferableArray) {
    return;
}

08-08 07:03