Избегайте передачи параметров функции стрелки в другую функцию - PullRequest
0 голосов
/ 25 марта 2020

Я использую express и использую функцию стрелки для обработки моих параметров req,res. Я делегирую это req,res другой вспомогательной функции.

Т.е.

app.get("/Model/:id", (req, res) => { Handler.model(req, res) });    

Мой вопрос: могу ли я избежать этой избыточности и просто сделать что-то вроде

app.get("/Model/:id", Handler.model(req, res));

1 Ответ

1 голос
/ 25 марта 2020

Вы, вероятно, можете сделать η-сокращение:

app.get("/Model/:id", Handler.model);

Однако вам может потребоваться bind it:

app.get("/Model/:id", Handler.model.bind(Handler));

Обратите внимание, что в отличие от вашей исходной функции стрелки, это делает передать произвольному количеству аргументов методу model, а не двум, и он вернет возвращаемое значение метода model вместо ничего (undefined). От app.get и Handler.model зависит, смогут ли они справиться с этими незначительными различиями.

...