Я слышал из некоторых уроков, что определение функций внутри функции - это плохая практика.Код повторного использования внутри оператора if. (Является ли функция внутри функции плохой практикой?)
В моем случае мне нужно повторно использовать код внутри двух вложенных обратных вызовов. Например:
router.get('...', function(req, res) {
db.on('load', function(){
function doRequest() {
// Valid token required to do the request.
}
if (!validToken) {
getValidToken().then(... doRequest() ...)
}
else {
doRequest()
}
});
});
Вы видите функцию doRequest()
определяются внутри других функций (обратных вызовов). Когда-нибудь в будущем мне, возможно, понадобится сделать что-то подобное, но внутри defined
от меня function
. Это неправильно?
Я использую неверную практику в этом «коде»? Могу ли я сделать это лучше?
Это мое мнение, но я думаю, что функция, определенная в функции, - это совершенно нормально. Если этот код не используется повторно и предназначен только для этой ситуации, тогда я думаю, что лучше написать его внутри функции, чем разоблачить его ... плюс написать его где-то еще, просто отделяет его от того, где происходит действие, из-за чего трудно сказать в глаза, что делает этот код. –