2017-01-14 3 views
5

Я новичок в Node.js.Где находится ".on" в "process.stdin.on"?

Я был на их сайте, и у меня был пример кода от друга, содержащего «stdin». Я пошел искать то, что был stdin, и теперь я знаю. Наверху, на веб-сайте от Node.js, они используют «stdin.on».

Я ничего не могу найти об этом. Может быть, кто-то может наполнить меня ?! :)

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'); 
}); 

Я надеялся, что кто-то может объяснить это мне на не-экспертном уровне. Я знаю, что я мог бы купить книгу и начать читать, но я делаю это для удовольствия в свое свободное время ...

+0

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

+0

@JohnSlegers, я прочитаю через веб-страницу через секунду, но на самом деле это не отвечает на мой вопрос. Я «сканировал» страницу, и я ничего не могу найти о дополнении «.on». Есть ли что-то, чего я не хватает, или он собирался дать мне некоторую справочную информацию :). Редактировать: Спасибо, что ответили так же быстро, как и вы. –

+1

Возможный дубликат [как работать с «process.stdin.on»?] (Http://stackoverflow.com/questions/26460324/how-to-work-with- process-stdin-on) –

ответ

3

Я сам боролся с тем же вопросом и недавно немного поработал, я обнаружил, что согласно Node.Js documentation:

объект process является экземпляром EventEmitter

Если вы над головой EventEmitter documentation вы можете найти больше об API и on functionalit y there:

Добавляет функцию прослушивателя в конец массива слушателей для события с именем eventName. Не проверяется, добавлен ли слушатель. Несколько вызовов, проходящих одну и ту же комбинацию eventName и прослушивателя, приведут к тому, что слушатель будет добавлен и вызывается несколько раз.

В моем случае это просматривал файл определения Машинопись для узла, который привел меня вниз, что маршрут, со следующими методами API:

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

Спасибо за ответ! У меня было несколько вещей, которые мешали мне понять, что я хотел знать. Поскольку я не английский, я даже не знал точного перевода испускания (что затрудняло его понимание). А также я никогда не использовал слово «слушатель» всякий раз, когда я программировал. После этого я снова прочитаю ваш пост, и первая часть имеет смысл. Вторая часть ... Я понятия не имею, что происходит ... Спасибо в любом случае :) –

+1

Без проблем, рад, что я мог бы сэкономить кому-то еще, чтобы пройти через боль, которую я сделал, чтобы найти именно то, где 'on'! –

+0

Yup, после прочтения части с «on» и «Once», я понял, где это было и после некоторых экспериментов ... Я получил это! :) Редактировать: мне просто не нравится использовать код, который я не понимаю ...: / –

Смежные вопросы