Потоки Node.js запускають як події, так endі finishподії. Яка різниця між ними?
Потоки Node.js запускають як події, так endі finishподії. Яка різниця між ними?
Відповіді:
endі finishє однаковою подією, АЛЕ на різних типах потоків.
stream.Readableпожежі ТІЛЬКИ endі НІКОЛИfinishstream.Writableпожежі ТІЛЬКИ finishі НІКОЛИendДжерело: https://nodejs.org/dist/latest-v5.x/docs/api/stream.html
Чому різне найменування однієї і тієї ж події?
Єдина причина, через яку я міг подумати, це дуплексні потоки ( stream.Duplex), які реалізують обидва, stream.Readableа stream.Writableінтерфейси ( https://nodejs.org/dist/latest-v5.x/docs/api/stream.html#stream_class_stream_duplex ) читаються і одночасно записуваний потік. Щоб розрізнити кінець читання та кінець запису в потоці, потрібно мати іншу подію. ТАК, для дуплексних потоків endкінець читання та finishкінець запису.
endданих проти finished роботи має сенс. Можливо, запис, який отримав усі дані, які він збирається отримати, наприклад, він отримав дані endз вищого рівня, але все ще працює. (Я не впевнений, але здогадуюсь, що перетворення finishedзавжди настає після end?)
Transformпотік має і те,endі іншеfinish. Дійсно, це поширюєтьсяDuplex.