不能给类型化数组缓冲区赋值

Cannot assign values to typed array buffer

本文关键字:缓冲区 赋值 数组 类型化 不能      更新时间:2023-09-26

为什么值没有按预期分配?没有抛出错误。

fs = require('fs');
var path="data.dat";
var f = fs.createReadStream(path,{highWaterMark:1024*1024*128})
var stat = fs.statSync(path);
var stream = fs.createReadStream(path,{start:0,end:stat.size-1});
var dat = new Float64Array(stat.size);
var idx = 0;
stream.on('data',(chunk)=>{
    var temp = new Float64Array((new Uint8Array(chunk)).buffer);
    for(var i = 0; i< temp.length;++i){
        dat[idx++]=temp[i];
        console.log(temp[i]); //this will log the expected values
        console.log(dat[idx]); //this will log a bunch of 0
    }
});
stream.on('end',function(){
    //do_stuff(dat);
});

…我觉得这样问很蠢。答案是console.log(dat[idx-1]);