Я знаю, что Nodejs должен отличаться от других языков, связанных с циклом событий , что затрудняет понимание вначале. Однако я не могу понять следующий код (мне удалось заставить его работать, но не логическое объяснение).Не могу понять код nodejs
создать новые экземпляры соединения SSH каждый раз, когда я получаю специальный запрос, скажем:
sshCons = {};
sshObjt = new Connection();
sshCons[request_id] = sshObjt;
sshObjt.connect(); //and son on...
Так что создать новое подключение и «магазин» это в том, что мы можем понять, как «ассоциативно array ", даже если я думаю, что это просто объект, который несет свойства и их значения. Вопрос заключается в том, если поместить этот код после строки написано выше:
sshObjt.on('data', function() {
// CODE
});
Как Node знать, какой sshObjt
является тот, который излучает событие, если я создал несколько sshObjt
с и «хранящийся» их? Я ранее пытался перебрать объект sshCons
, но это не должно быть подходящим способом обработки этого. В случае, если я ошибаюсь, что должно быть правильным способом обработки событий нескольких объектов, «сохраненных» в объекте sshCons
?
Я не уверен на 100%, но есть вероятность, что в обратном вызове 'this' будет ссылаться на испускающий« sshObjt ». – kay
Это имеет смысл. Но дело в том, что, поскольку я «постоянно делаю новый' sshObjt '' и поэтому «перезаписываю» последний созданный sshObjt, я думал, что Node будет присутствовать только на * data * событии последнего созданного 'sshObjt'. Надеюсь, я мог бы объяснить себя. – ederollora
Вы перезаписываете переменную, вы не манипулируете самим объектом, который был там сохранен. –