Я не могу понять, почему это не решение, какие-либо идеи? «разрешить это» делает печать, но она никогда не возвращает ее к разрешению обещания в. then.
var promise = wait();
promise.then(function(result){
console.log("wait returned - " + result);
});
function wait(){
var deferred = $q.defer();
if(busy){
setTimeout(function(){
wait();
},500);
} else {
console.log("resolve this");
deferred.resolve("Wait is over.");
}
return deferred.promise;
};
Что изменилось «занято»? Во всяком случае, вы всегда создаете новый отложенный объект с каждым последующим вызовом 'wait', но возвращаете только один из первого вызова, по-видимому. – raina77ow
вы возвращаете разные обещания каждый раз, когда вы вызываете 'wait' – akonsu
Занят - это всего лишь флаг, установленный где-то в другом месте. Я не думал об этом, создавая это обещание каждый раз ... duh. Благодарю. – mrshickadance