2017-01-14 25 views
5

Tôi mới sử dụng Node.js.".on" ở đâu trong "process.stdin.on" cho?

Tôi đã ở trên trang web của họ và tôi đã có một số mã ví dụ từ một người bạn có chứa "stdin". Tôi đã đi tìm kiếm những gì stdin là và tôi biết bây giờ. Rõ ràng, trên trang web từ Node.js, họ sử dụng "stdin.on".

Tôi không thể tìm thấy bất kỳ điều gì về nó. Có lẽ ai đó có thể lấp đầy tôi trong ?! :)

process.stdin.setEncoding('utf8'); 

process.stdin.on('readable',() => { 
    var chunk = process.stdin.read(); 
    if (chunk !== null) { 
    process.stdout.write(`data: ${chunk}`); 
    } 
}); 

process.stdin.on('end',() => { 
    process.stdout.write('end'); 
}); 

Tôi hy vọng một người nào đó có thể giải thích điều này với tôi ở cấp độ không chuyên gia. Tôi biết tôi có thể mua một cuốn sách và bắt đầu đọc, nhưng tôi đang làm điều này cho vui trong thời gian rảnh rỗi của tôi ...

+0

https://en.wikipedia.org/wiki/ Standard_streams –

+0

@JohnSlegers, tôi sẽ đọc máng trang web trong một giây, nhưng nó không thực sự trả lời câu hỏi của tôi. Tôi đã 'quét' trang và tôi không thể tìm thấy bất cứ điều gì về ".on" add-on. Có cái gì tôi đang mất tích, hoặc là nó có ý định cung cấp cho tôi một số thông tin cơ bản :). Chỉnh sửa: Cảm ơn bạn đã trả lời nhanh như bạn đã làm –

+1

Bản sao có thể có của [cách làm việc với "process.stdin.on"?] (Http://stackoverflow.com/questions/26460324/how-to-work-with- process-stdin-on) –

Trả lời

3

Đã đấu tranh với cùng một câu hỏi bản thân mình gần đây và sau một chút đào tôi thấy rằng theo các Node.Js documentation:

Đối tượng process là một thể hiện của EventEmitter

Nếu bạn đi qua các EventEmitter documentation bạn có thể tìm thêm về API và on functionalit y there:

Thêm chức năng người nghe vào cuối mảng người nghe cho sự kiện có tên eventName. Không kiểm tra được thực hiện để xem nếu người nghe đã được thêm vào. Nhiều cuộc gọi đi qua cùng một sự kết hợp của eventName và người nghe sẽ dẫn đến người nghe được thêm vào và được gọi, nhiều lần.

Trong trường hợp của tôi nó đang tìm kiếm thông qua các tập tin định nghĩa nguyên cảo cho Node đó dẫn tôi xuống mà tuyến đường, với các phương pháp API sau:

export class EventEmitter { 
    addListener(event: string | symbol, listener: Function): this; 
    // Here is it 
    on(event: string | symbol, listener: Function): this; 
    once(event: string | symbol, listener: Function): this; 
    removeListener(event: string | symbol, listener: Function): this; 
    removeAllListeners(event?: string | symbol): this; 
    setMaxListeners(n: number): this; 
    getMaxListeners(): number; 
    listeners(event: string | symbol): Function[]; 
    emit(event: string | symbol, ...args: any[]): boolean; 
    listenerCount(type: string | symbol): number; 
    // Added in Node 6... 
    prependListener(event: string | symbol, listener: Function): this; 
    prependOnceListener(event: string | symbol, listener: Function): this; 
    eventNames(): (string | symbol)[]; 
} 
+0

Cảm ơn bạn đã trả lời! Tôi đã có một vài điều khiến tôi không hiểu những gì tôi muốn biết. Vì tôi không phải là người Anh, tôi thậm chí còn không biết bản dịch chính xác của emit (mà làm cho nó khó hiểu). Và tôi cũng chưa bao giờ sử dụng từ 'người nghe' bất cứ khi nào tôi lập trình. Sau đó, tôi đọc lại bài đăng của bạn và phần đầu tiên có ý nghĩa. Phần thứ hai ... Tôi không biết đầu mối gì đang xảy ra ... Cảm ơn anyway :) –

+1

Không vấn đề gì, vui vì tôi có thể cứu người khác phải trải qua nỗi đau tôi đã làm để tìm chính xác vị trí của 'on'! –

+0

Yup, sau khi đọc phần "on" và "once" tôi nhận ra nó ở đâu và sau khi thử nghiệm ... Tôi đã làm việc đó! :) Chỉnh sửa: Tôi chỉ đơn giản là không thích sử dụng mã tôi không hiểu ...: / –

Các vấn đề liên quan