デモが示しているように、私が約束したサービスを定義して戻すと(デモのpromise1)、それはまったく解決しません。
しかし、私がコントローラのpromise2(デモのpromise2)を定義すると、それはうまくいく。なぜ?
serv.getDefer = function() {
var defer = $q.defer();
return {
defer: defer,
promise: defer.promise
}
}
var defer1 = serv.getDefer().defer;
var promise1 = serv.getDefer().promise;
promise1.then(function() {
alert('promise1 should work,but doesnt')
})
defer1.resolve();
var defer2 = serv.getDefer().defer;
var promise2 = defer2.promise;
promise2.then(function() {
alert('promise2 works good')
})
defer2.resolve();