我對推遲的Angular JS和$ q之間感到困惑。我發現這個SO Question解釋$q.defer()
和$q
。它的區別解釋
$ q.reject是一個快捷方式創建一個延遲,然後拒絕立即
所以$q.reject()
必須等於
var deferred = $q.defer(); deferred.reject()
,如果不是請說明兩者的實際區別。
但在我的情況下,$q.reject()
正在工作,但deffered.reject()
不起作用。此外,我們需要返回拒絕承諾,如$q.reject()
但不是deferred.reject()
。我所看到的例子那裏是deffered.reject()
這不歸是,這是不工作的代碼
var deferred = $q.defer();
myService.getData()
.then(function(response){
deferred.notify('Just a notification');
deferred.reject('rejected');
})
.then(function(response) {
console.log('done');
}, function(response) {
console.log('rejected');
})
,但是當我更換deferred.reject
與$q.reject()
,承諾已被拒絕,並且控制移到隨後的錯誤功能塊。
任何幫助,非常感謝。提前致謝。
它不會在您的情況在所有的工作,你鏈式'。然後(功能(響應...'到諾言'.getData( )'已經返回了,而不是延遲'已經返回的承諾,爲什麼這個工作沒有意義? –