У меня есть 1 поток, в который поступают данные с префиксом 2 разных префиксов. скажем, 1 и 0. Я хочу, чтобы все данные с префиксом 1 передавались только в поток A и 0 в поток B.
Я подумал об использовании только двух преобразований, которые позволяют передавать данные только в том случае, если они имеют правильный префикс. Мне просто интересно, есть ли более элегантный способ сделать это.
//an idea
//transformA is a transform that only pushes data that is prefixed with 1
//transformB is a transformt hat only pushes data that is prefixed with 2
incomingStream.pipe(transformA).pipe(destinationA)
incomingStream.pipe(transformB).pipe(destinationB)
Используйте for-await
и if
, может быть?
for await (const chunk of incomingStream) {
if (chunk.startsWith("1")) {
destinationA.write(transformA(chunk));
continue;
}
if (chunk.startsWith("2")) {
destinationB.write(transformB(chunk));
continue;
}
destinationElse.write(chunk);
}