2015-07-29 3 views
0

Каков наилучший способ создания «промежуточного» потока в Node.js? То есть поток, который только собирает информацию из другого потока и передает его.Создайте «промежуточный» поток в Node.js

Например, я мог бы вернуть поток непосредственно из функции с асинхронным потоком:

var streamingQuery = function (query) { 
    var intermediateStream = new IntermediateStream(); 
    database.connect(function (client) { 
     var queryStream = client.query(query); 
     queryStream.pipe(intermediateStream); 
    }); 
    return intermediateStream; 
}; 

Я думаю stream.DuplexStream может быть то, что мне нужно, но я не уверен, что лучший способ сделать что тип потока просто передает все свои данные к следующему потоку. Или, может быть, есть удобная вспомогательная функция для выполнения этой конкретной задачи, и если так, я хотел бы узнать об этом.

ответ

1

Я обнаружил, что stream.PassThrough встроен и, кажется, делает то, что я хочу.

var stream = require('stream'); 
var streamingQuery = function (query) { 
    var intermediateStream = new stream.PassThrough(); 
    database.connect(function (client) { 
     var queryStream = client.query(query); 
     queryStream.pipe(intermediateStream); 
    }); 
    return intermediateStream; 
}; 
Смежные вопросы