Обновление: Решено, это действительно проблема с областью. Я обошел его, переместив код пользовательского списка внутри класса базы данных и вернув предварительно настроенный список.переменная пустая при выполнении асинхронного вызова в node.js (закрытие)
Используя node.js, я делаю асинхронный вызов функции findUser, и я создаю список пользователей из обратного вызова в содержимое переменной. Это работает отлично во время цикла (где он говорит, что переменная содержимого доступна), но когда цикл выходит, переменная пуста. Как я могу переписать код так, чтобы значение переменной содержимого было доступно вне цикла?
exports.listUsers=function(req,res) {
var content=''
isLoggedIn=user.findUser({},function(myuser) {
content = content +'<li>' + myuser.firstname + ' ' + myuser.lastname + "</li>\n";
//here value of content var is available
console.log(content)
})
//here value of content var is empty
console.log(content)
showPage(req,res,{'content':content})
}
возможно ли, что это проблема обзорной? Не могли бы вы ссылаться на живую версию или попытаться построить jsfiddle? Я сделал это, но ничего не нашел. – maaachine
Конечно, он пуст, обратный вызов выполняется ** асинхронно **. Разве ты не сказал это сам? Или вы не понимали, что это значит? – Bergi