2017-01-17 3 views
1

Я пытаюсь подтолкнуть некоторый кусок данных, считанный из моего потока в массиве Buffer, например:STREAM «данных», чтобы запихнуть в массиве в Node.js

const chunks = []; 
readableStream.on('data', chunks.push); 

Но тогда, chunks пусто.

Следующая работает хорошо, но я хотел бы найти разницу между этими двумя:

const chunks = []; 
readableStream.on('data', (chunk) => chunks.push(chunk)); 

BTW, я использую узел 6.2.2. Спасибо

EDIT: Я понимаю, что на первой строке должен быть какой-то контекст, но объяснения приветствуются! Кроме того, есть ли какие-либо рекомендации/хорошая практика?

ответ

0

В этой строке:

readableStream.on('data', (chunk) => chunks.push(chunk)); 

он использовал callback функцию, которая принимает каждый элемент (chunk) и added его в chunks массиве, используя метод push.

Метод эквивалентен:

const chunks = []; 
readableStream.on('data',callback); 
function callback(chunk){ 
    chunks.push(chunk); 
} 
+0

Да, я знаю, что, но мой вопрос, почему первая линия терпит неудачу. – NorTicUs

+0

Поскольку функция 'readableStrem' принимает в качестве второго параметра функцию обратного вызова. –

+0

'chunk.push' - это функция с той же сигнатурой, что и' callback', и должна действовать одинаково – NorTicUs

Смежные вопросы