Управление выполнением потока преобразования NodeJS
У меня есть база кода, где я собираю несколько потоков преобразования в NodeJS
stream.on('data',function(data){}).pipe(data_work1).pipe(data_work2).pipe(data_work3).pipe(insertDataIntoDB);
Работает нормально. Мой вопрос касается дизайна, когда исходные данные имеют массив.
Если мои исходные данные имеют массив, как показано ниже:
{
"comp":"company1",
[
{
"name":"yoohoo",
"age":"43"
},
{
"name":"yolo",
"age":"21"
}
]
}
Если я хочу разбить вышеупомянутый документ на более мелкие части
{
"comp":"company1",
"name":"yoohoo",
"age":"43"
}
а также
{
"comp":"company1",
"name":"yolo",
"age":"21"
}
Я делаю это на этапе data_work1. Я хочу передать каждый из этих отдельных документов (yolo и yoohoo) на этапы data_work2, data_work3, insertDB. Только после этого я хочу получить следующий документ данных в data_work1.
Я знаю, что следующий этап / поток не будет работать до тех пор, пока не будет выполнен обратный вызов. Как я могу передать указание / флаг на предыдущий этап, чтобы сказать ему пропустить следующий документ данных? Например, я разбиваю исходный документ данных (с массивом) на отдельные документы, я передаю отдельные документы следующим этапам потока, т.е. data_work2 и т. Д., А затем говорю предыдущему этапу "поток" передать следующий документ?