В стремлении написать хороший чистый код, я создал функцию, в которой я настраиваю такие вещи, как res.status()
или отправку res.send()
Теперь, в общем, я знаю, если мы ничего не возвращаем в Javascript, он возвращает undefined.
И, возможно, если мы создадим обещание и не разрешим его, это приведет к утечке памяти ?
Но это то же самое для .then()
т.е. если мы ничего не возвращаем в нашем .then и аналогично, если мы вызываем функцию, которая устанавливает такие вещи, как res.status()
и отправляет res.send()
Чтобы привести пример, это то, что я делаю
Рассмотрим этот маршрут Api и Middleware
router.use(MiddlewareAuth.eventBriteAuthentication)
router.get("/user", (req, res) => {
eventBriteHelper.getEventbriteRequestedDataForAuthorizedUser("https://www.eventbriteapi.com/v3/users/me", req.session.contextToken["EventbriteAccessToken"])
.then(response => {
res.send(response.data)
})
.catch(error => {
errorCodesHelper.errorStatusCodeAndResponseMeetupLoggedInUser(req, res, error)
})
})
Здесь,
errorCodesHelper.errorStatusCodeAndResponseMeetupLoggedInUser(req, res, error)
это функция
const errorStatusCodeAndResponseEventbriteLoggedInUser = (req, res, error) => {
//Updaing the same in firebase
if (req.user["eventbrite"] !== "warning") {
FirebaseHelper.updateDataInDb("users", req.user.email, {"eventbrite": "warning"})
.catch(error => {
throw error
})
req.user["eventbrite"] = "warning"
}
res.status(error.response.status)
res.send(error.response.data.problem)
}
Это нормально?
И, наконец, в моем токене обновления встречи .then()
я ничего не возвращаю.
const meetupRefreshToken = (req, res) => {
return helperFunctionsAxios.refreshingAccessToken("meetup", req, res)
.then(response => {
let expiryTime = authHelper.calculatingTokenExpiryTime(response.data.expires_in)
let TokenToStore = {"meetupRefreshToken": response.data.refresh_token, "meetupAccessToken": response.data.access_token, "meetup_expires_in": expiryTime }
FirebaseHelper.updateDataInDb("authentication", req.user.email, TokenToStore)
.catch(err => {throw err})
req.session.contextToken = {...req.session.contextToken, ...TokenToStore}
})
.catch(error => {
errorCodesHelper.errorStatusCodeAndResponseMeetupLoggedInUser(req, res, error)
})
}
Это тоже хорошо? Если да, то может ли кто-нибудь указать на ситуацию, когда не возвращение чего-либо может вызвать утечку памяти?