Buffer.Copy 范围错误

Buffer.Copy RangeError

这段代码产生以下示例输出:

buf = new Buffer( end - start );

console.log(buf.length);
console.log(data.length);
console.log(start);
console.log(end);

data.copy( buf, 0, start, end );

拳头召唤:

3732395 // buf.len
3732395 // data.len
0       // start
3732395 // end

第二次通话:

29611   // buf.len
3732395 // data.len
3702784 // start
3732395 // end

RangeError: sourceEnd < sourceStart
    at Buffer.copy [..]

好像所有的参数都没有问题。特别是起始值和结束值不符合错误信息。 我在这里做错了什么?

令人尴尬的是,我传递了 strings 作为参数,但没有产生预期的结果。 Buffer.copy (v0.10.28) 中的这个调用将 this.offset 附加到我的字符串,导致抛出错误。

return this.parent.copy(target.parent || target,
                        target_start + (target.offset || 0),
                        start + this.offset,
                        end + this.offset);