2016-05-26 3 views
0

Je souhaite copier certains éléments de mon tampon dans un autre tampon. Je tapais commande suivante sur REPLImpossible de copier un tampon dans un autre dans le noeud JS

assn1.copy(assn3,0,40,59) 

assn1 est tampon source assn3 est tampon cible

mais je reçois l'erreur suivante.

TypeError: assn1.copy is not a function 
at repl:1:7 
at REPLServer.defaultEval (repl.js:270:27) 
at bound (domain.js:287:14) 
at REPLServer.runBound [as eval] (domain.js:300:12) 
at REPLServer.<anonymous> (repl.js:439:10) 
at emitOne (events.js:95:20) 
at REPLServer.emit (events.js:182:7) 
at REPLServer.Interface._onLine (readline.js:211:10) 
at REPLServer.Interface._line (readline.js:550:8) 
at REPLServer.Interface._ttyWrite (readline.js:827:14) 

aidez-moi à résoudre ce problème.

+0

Est-ce que 'assn1' est vraiment un type 'Buffer'? – NeoAsh

+0

oui c'est. Je l'ai déclaré comme, var assn1 = new Buffer (100) –

+0

@NeoAsh après que j'ai copié un tableau dans ce tampon en utilisant assn1 = arr; et après cela, il donne false à Buffer.isBuffer (assn1) –

Répondre

0

assn1 = arr;

ne copie pas réellement un tableau dans le tampon, mais ré-affecte une variable à un objet tableau, et ce faisant, vous perdez l'objet tampon.

Essayez quelque chose comme ceci:

var a = [1, 2, 8, 9]; 
var buf1 = new Buffer(a); 
var b = [3, 4]; 
new Buffer(b).copy(buf1, 2, 0, 2); 
console.log(buf1); 

me donne cette sortie:

<Buffer 01 02 03 04> 

Hope this helps.