Почему не работает callback? setAuth: ( some, cb) ->
if !some
@getlogin =
response: 'not found'
object: 'user'
else
@getlogin =
response: 'success'
object: 'user'
data: getLogin
cb @getlogin
Вызываю так:
setAuth( some, (cb)->
res.send cb
)
В итоге при первом обновлении страницы @getlogin дает undefined, при втором - объект...

21 Авг 2019 в 07:06
260 +1
0
Ответы
1

Проблема здесь заключается в том, что при первом обновлении страницы переменная @getlogin у вас не инициализируется внутри функции setAuth перед вызовом callback cb @getlogin. Поэтому при первом обновлении страницы значение переменной @getlogin будет undefined, и только при следующем обновлении страницы она будет содержать нужный объект.

Чтобы исправить эту проблему и гарантировать, что @getlogin будет доступна при вызове колбэка, вам нужно передавать объект @getlogin напрямую в колбэк внутри функции setAuth. Пример исправленного кода:

setAuth: ( some, cb) ->
if !some
@getlogin =
response: 'not found'
object: 'user'
else
@getlogin =
response: 'success'
object: 'user'
data: getLogin
cb @getlogin
# Вызываем функцию setAuth с передачей колбэка напрямую
setAuth( some, (result) ->
res.send result
)

Теперь переменная @getlogin будет доступна при вызове колбэка, и проблема с undefined значением должна быть исправлена.

20 Апр 2024 в 13:07
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир