Я пытаюсь изменить переменную внутри функции, но должно быть что-то с размахом, что я не понимающего, код:Угловая завод, объект сфера путаница
app.factory("UserService", function(){
var foo = 'bar';
return {
init: function(){
var self = this;
self.create();
},
create: function(){
$.post(server+"api/users", {
uuid: self.uuid
})
.done(function(data) {
if(data.reply !== 0){
foo = true;
} else {
foo = false;
}
});
return foo;
}
};
});
Почему я не могу изменить значение foo изнутри функций? Я пробовал делать this.foo, self.foo, после присвоения этого себе, среди многих других вещей, и я считаю, что я пропускаю что-то слишком очевидное, и я буду чувствовать себя идиотом после того, как кто-то его очистит меня.
Спасибо.
Вы можете. То, что вы * не можете сделать, - это притвориться, что $ .post не является асинхронным и пытается * вернуть * его из асинхронной функции. –
Как мне обойти это? Мне нужно знать, будет ли функция create() запускаться правильно или нет, могу ли я просто изменить foo внутри функции, а позже по строке проверить значение foo, не возвращая ничего? – aabreu
Вы должны вернуть обещание. Проблема не в области или контексте. –