Задать вопрос
Emptyform
@Emptyform

Почему данный пример не работает (подмена функции)?

Привет, алл!

Код:
var emit = server.emit;

/* Вариант 1 - работает */
server.emit = function(event) {
    console.log('блабла');
    return emit.apply(server, arguments);
};

/* Вариант 2 - НЕ работает */
server.emit = event => {
    console.log('блабла'); // <-- это работает
    return emit.apply(server, arguments); // <-- здесь не работает
};

Вариант 2 не работает - клиент не получает ответа, отваливается по таймауту.
Почему вариант 2 не работает?
  • Вопрос задан
  • 146 просмотров
Подписаться Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Node.js для backend-разработки
    6 месяцев
    Далее
  • Skillbox
    Node.js
    2 месяца
    Далее
  • Яндекс Практикум
    Бэкенд на Node.js для фронтенд-разработчиков
    3 месяца
    Далее
Решения вопроса 1
@YNile
JS Developer
Дело не this
arguments внутри стрелочных функций берется из внешней функции. Соотв у вас возможно arguments будет неизвестный.

server.emit = (...args) => {
    return emit.apply(server, args);
};


Вот так должно работать
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы