tôi đẻ trứng một quá trình con như vậy:dòng chuyển đổi để thêm vào trước chuỗi với từng ngành nghề
const n = cp.spawn('bash');
n.stdout.pipe(process.stdout);
n.stderr.pipe(process.stderr);
Tôi đang tìm kiếm một biến đổi dòng để tôi có thể thêm vào trước một cái gì đó như '[child process]' đến đầu mỗi dòng từ đứa trẻ, vì vậy tôi biết rằng stdio đến từ đứa trẻ so với quá trình cha mẹ.
Vì vậy, nó sẽ trông như thế:
const getTransformPrepender = function() : Transform {
return ...
}
n.stdout.pipe(getTransformPrepender('[child]')).pipe(process.stdout);
n.stderr.pipe(getTransformPrepender('[child]')).pipe(process.stderr);
không ai biết nếu có một hiện có chuyển đổi gói như thế này hay như thế nào để viết một?
Tôi có điều này:
import * as stream from 'stream';
export default function(pre: string){
let saved = '';
return new stream.Transform({
transform(chunk, encoding, cb) {
cb(null, String(pre) + String(chunk));
},
flush(cb) {
this.push(saved);
cb();
}
});
}
nhưng tôi sợ nó sẽ không làm việc trong trường hợp cạnh - nơi một đoạn bùng nổ có thể không bao gồm toàn bộ một dòng (đối với dòng rất dài).
Dường như câu trả lời cho điều này là ở đây: https://strongloop.com/strongblog/practical-examples-of-the-new-node-js-streams-api/
nhưng với phụ lục này: https://twitter.com/the1mills/status/886340747275812865
nhưng chưa hoàn chỉnh, vì nó không thể xử lý các dòng dài đại diện cho nhiều cuộc gọi ('dữ liệu'). –
việc triển khai này chưa hoàn tất và tôi cần trợ giúp để thực hiện chính xác. –
Tôi nghĩ rằng điều này có câu trả lời - https://strongloop.com/strongblog/practical-examples-of-the-new-node-js-streams-api/ –